常见的微服务springcloud一般使用的注册中心为eureka,但是最近在项目中客户需要搭建一个灰度发布,所以这里我们可以采用nacos作为注册中心来动态修改配置,实现我们的恢复发布需求。
首先,我们需要了解什么是灰度发布,然后我们引出nacos作为注册中心的好处,为什么要使用nacos,在我的理解来看,灰度发布就是在用户不知道的情况,实现我们的服务发布与更新,而这些操作是在服务不停更的情况下实现的,所以对于我们的用户来说,它就是灰度的,而实现它的重点,就在于动态路由的配置化管理,在切换完路由之后,使之前的请求路由到我们新发布的服务上,模型如下:
好了,接下来我们来学习使用springcloud整合nacos,首先在我们搭建好的springboot项目中引入对应的pom依赖
< ! -- 基于nacos的注册中心依赖-- >
< dependency>
< groupId> com. alibaba. cloud< / groupId>
< artifactId> spring- cloud- starter- alibaba- nacos- discovery< / artifactId>
< version> 2.1 .0 . RELEASE< / version>
< / dependency>
< ! -- 基于nacos的配置中心依赖-- >
< dependency>
< groupId> com. alibaba. cloud< / groupId>
< artifactId> spring- cloud- starter- alibaba- nacos- config< / artifactId>
< version> 2.1 .0 . RELEASE< / version>
< / dependency>
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- web< / artifactId>
< / dependency>
< dependency>
< groupId> org. springframework. cloud< / groupId>
< artifactId> spring- cloud- starter- openfeign< / artifactId>
< / dependency>
然后新建我们的启动类,@EnableDiscoveryClient注意这个注解是我们以服务提供者的身份注册到nacos注册中心去的
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main ( String[ ] args) {
SpringApplication. run ( ProviderApplication. class, args) ;
System. out. println ( "服务提供者启动成功" ) ;
}
}
接下来开始写配置文件
#服务注册中心端口号
server:
port: 8001
#服务注册中心实例的主机名
spring:
application:
name: quickstart- provider
cloud:
nacos:
discovery:
server- addr: 127.0 .0 .1 : 8848 #nacos服务ip
查看nacos注册中心有没有服务注册上