spring-cloud alibaba关于nacos和网关gateway的使用
使用nacos作注册中心和配置中心
nacos的注册中心使用
①下载nacos : https://github.com/alibaba/nacos/releases,使用java -jar 启动 默认在8848端口
② 微服务注册。导包
<!--注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
③开启注解。主启动类上加@EnableDiscoveryClient
④ 在yml中配置nacos地址
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
这样就完成了微服务注册到nacos
nacos的配置中心的使用:
① 同上面步骤1,下载启动nacos
②导包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
③在bootstrap.properties中配置
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
如果把配置文件放在nacos中,那么配置如下:
#配置的命名空间,这里按具体微服务分,每个微服务有自己的命名空间
spring.cloud.nacos.config.namespace=fb47002f-835b-473e-9e61-43c76e2ef64f
#分组,该命名空间下的不同组
spring.cloud.nacos.config.group=dev
#dataId的后缀,同时也是配置内容的文件格式
spring.cloud.nacos.config.file-extension=yml
gateway网关的使用:
首先网关也要注册到nacos上。
①导包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
注:spring-cloud-starter-gateway 包含了spring-boot-starter-web包,所以不能再引spring-boot-starter-web包,否则冲突
②在yml中配置路由规则
示例:
spring:
cloud:
gateway:
routes:
- id: consumer-route
uri: lb://service-consumer
predicates:
- Path=/api/consumer/**
filters:
- RewritePath=/api/(?<segment>.*),/$\{segment}
- id: provider-route
uri: lb://service-provider
predicates:
- Path=/api/provider/**
filters:
- RewritePath=/api/(?<segment>.*),/$\{segment}