- 准备
- Gateway服务
- Member服务
- 运行
往期相关推荐:
网关路由规则和nacos配置中心实战:
一步步带你学习gateway路由规则实践
nacos整合配置中心
准备准备引入相关依赖:
org.springframework.boot spring-boot-starter-parent 2.3.9.RELEASE UTF-8 UTF-8 1.8 Hoxton.SR3 0.2.1.RELEASE org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import
上面这些依赖是gateway服务和member服务实践共同需要的,此外需要注意SpringBoot的版本,小编实践过程中,gateway集成nacos依赖启动失败,原因:springBoot引用的版本是2.5.5,需要降级为2.3.9.RELEASE,所以如果小伙伴整合nacos时,同样遇到问题,思考一下是否版本问题。
Gateway服务- 引入gateway依赖
org.springframework.cloud
spring-cloud-starter-gateway
- 配置文件bootstrap.yml
server:
port: 8082
spring:
application:
name: gateway-demo
cloud:
nacos:
config:
file-extension: yaml
server-addr: XX.XX.XX.XX:8848
profiles:
active: dev
注意:nacos服务地址替换成自己服务器IP地址;
- nacos配置中心
之前谈论nacos配置中心的dataId的命名规则:
${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
故gateway服务命名为:gateway-demo-dev.yaml
具体配置如下:注意缩进格式,推荐现在idea中调整
spring:
application:
name: gateway-demo # 服务名称
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: xx.xx.xx.xx:8848 # 注册中心地址 # 默认是没有密码的
config:
server-addr: xx.xx.xx.xx:8848 # config地址
file-extension: yaml # 指定配置文件类型
# 网关的配置
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: member-server
uri: lb://member-server
predicates:
- Path=/query-demo/**
- 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayDemoApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayDemoApplication.class, args);
}
}
@EnableDiscoveryClient注解标识服务发现;
Member服务member服务按照准备部分引入相关依赖后,则直接添加配置文件;
- bootstrap.yml
server:
port: 8083
spring:
application:
name: member-server
cloud:
nacos:
config:
file-extension: yaml
server-addr: xx.xx.xx.xx:8848
- controller
@RestController
public class MemberController {
@RequestMapping("/query-demo")
public String queryDemo(String name) {
return "https://blog.csdn.net/"+ name + "/article/details/120475609";
}
}
主启动类上添加@EnableDiscoveryClient注解标识服务发现;
- nacos配置中心
新增配置dataId=member-server.yaml,如下
spring:
application:
name: member-server # 服务名称
cloud:
nacos:
discovery:
server-addr: xx.xx.xx.xx:8848 # 注册中心地址 # 默认是没有密码的
config:
server-addr: xx.xx.xx.xx:8848 # config地址
file-extension: yaml # 指定配置文件类型
运行
分别将网关服务8082,member服务8083端口启动,通过浏览器访问gateway将请求转发到member服务;
nacos服务列表中已经注册以上两个服务:
请求:http://localhost:8082/query-demo?name=xuanlu1
响应结果:https://blog.csdn.net/xuanlu1/article/details/120475609



