代码改变世界

Spring Cloud+nacos+Feign,实现注册中心及配置中心

2020-04-19 17:45  雨打夏夜  阅读(18199)  评论(0编辑  收藏  举报

写在前面

注册中心、配置中心的概念就不在这里解释了。发现服务原来一直用的是Eureka,因为这家伙闭源了,不爽。然后就发现了nacos,阿里巴巴的,好东西,一个搞定注册中心和配置中心。官网:https://nacos.io/en-us/。官网的手册比较入门可以,实用化还需要结合项目。接下来简单介绍下如何使用nacos搭建注册中心和服务中心。

在进行下面操作前,自己去git上下载一个打包发布后的nacos服务,地址:https://github.com/alibaba/nacos/releases。Linux下载第一个,windows下载第二个。后面两个是源码。如何启动使用nacos,nacos官网说的很详细,不再赘述。

注册中心

服务提供者

https://start.spring.io/下载一个原始的spring boot工程,别忘了添加Web依赖,如何下载就不在这里说了。添加依赖:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  <version>2.2.1.RELEASE</version>
</dependency>

配置文件application.properties添加配置:

server.port=8070
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

启动类

 

 

 添加一个测试用的Controller:

 

 

 至此,服务提供者完成。

服务消费者

同服务提供者操作,下载一个原始的spring boot工程,添加依赖,注意,因为要使用feign调用服务提供者,要添加相应依赖:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  <version>2.2.1.RELEASE</version>
</dependency>
  <dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
  <version>2.2.2.RELEASE</version>
</dependency>

配置文件application.properties添加配置:

server.port=8080
spring.application.name=service-consumer
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

启动类:

 

 

 添加feign的client:

 

 

 添加测试controller:

 

 

 准备工作完成,启动nacos、服务提供者,服务消费者。全部启动成功后,就可以在nacos的控制台界面里看到两个已经注册进去的服务:

 

 

 

 

 直接使用浏览器访问:http://127.0.0.1:8080/consumer/hello-consumer

配置中心

直接在上面的服务提供者中使用nacos的配置中心。添加依赖:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  <version>2.2.1.RELEASE</version>
</dependency>

 

在Controller添加以下注解及代码,并修改接口:

 配置文件application.properties添加配置:

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

重启服务提供者。

 在nacos控制台界面的【配置列表】中添加配置:

 

 

 

 发布后,再访问http://127.0.0.1:8080/consumer/hello-consumer

写在最后

简单介绍了如何使用,至于用到的注解有什么用,大家自行百度。