gateway nacos注册服务_使用Nacos作为微服务注册中心和配置中心

使用Nacos作为微服务注册中心和配置中心

一、技术简介

Nacos是阿里系开发的兼容Spring Cloud的服务注册中心组件,是微服务国产化的先驱。Nacos作为与Eureka的对比,不仅具有Eureka固有的集群化、注册中心等功能,还具有配置中心的功能,并且更加简单使用,拆箱即用,也支持二次开发。

并且在集成Spring Cloud大家族生态圈方面,原先经由Eureka开发的Feign、Ribbon、Zuul等程序,业务部分无需经过太多修改,可直接在Nacos环境下使用。

此外,与Spring Cloud Consul相比,Nacos具有简捷、轻量级的特点,本文将重点讲解Nacos作为微服务注册中心和配置中心的功能使用说明。

二、技术版本

本文采用的Spring Boot版本是2.1.0.RELEASE

58aba9b07716f7b851877f62519aa369.png

采用的Spring Cloud版本是Greenwich.SR2

927ce9407aacd0aaec7105a29db65ec4.png
430e190c3af9f08f2be2238aaf0d4d07.png

采用的Spring Alibaba Cloud版本是0.9.0.RELEASE

126e5c1ce06fa82e9f2ae52d375274bc.png
c101c51d06127672208f231cdb6d2c10.png

三、安装并运行Nacos

从官网下载Nacos版本,笔者下载的Nacos版本是nacos-server-1.2.0-SNAPSHOT

2891c9166f8cafd3d2e6c3f152834d6f.png

在Windows环境下直接运行startup.cmd

79ff3b32b88d860716bde5fbe15f4d30.png

启动成功之后Nacos控制台提示:

2eff602e86166611700acdc0caa461eb.png

打开浏览器运行http://localhost:8848/nacos

55c97a42e95484ad494644ce90c1b989.png

启动成功

四、注册Feign应用到Nacos注册中心

Spring Cloud服务端添加spring-cloud-starter-alibaba-nacos-discovery组件

435cc90c9b04c34aa3cf043a73ee546b.png

对应的Spring Cloud和Spring Alibaba Cloud配置

83067623efbc827b759dd39b0b0fb42c.png

其配置文件bootstrap.ym;如下:

614bd05b3185d3823ae3f4aa31200826.png

Nacos服务注册地址:

dfafb5ea69b758c22cff99e271b1ba1b.png

服务待调用接口Controller:

635f2f7569d9dd7f7a7a9b77bb42d078.png

Spring Cloud服务端主启动类添加@EnableDiscoveryClient注册进Nacos

6b66cf05ae6d49e2840baef58eb4134f.png

启动项目

25514dc2e4ab02dd1c94ef300060855e.png

启动成功后,打开Nacos界面,服务列表

fb911dacc182f3034dc22698ca898b49.png

表示已经注册到注册中心。

Spring Cloud客户端Maven配置也如下:

11d6b8a9450ce473ea3370d62a2b0bb7.png
b8398fecec0a5a2fd1d9ec5900d49e53.png

对应的接口基工程

084ea33a3ad8035b3b98969513228b68.png

基工程里面的接口

dc97db3c03b8bf1e4945f617c48bdefe.png

Spring Cloud客户端的配置:

3a121eb75141f0acf8490f0b7e3f642f.png

连接到Nacos注册中心

开启断路器

309eb0544e75787ddc01c60c2fb269cc.png

设置断路器相应的超时时间,10秒:

e365a76f7ec45ecdaaa83731010ae688.png

Spring Cloud客户端指定Feign调用

b91f81719aa1a89a80e0ef9e9dd30fe4.png

其中fallback=DemoFeignFallback.class表示断路器处理

9daf7e6d669a34dd84a6095c8660cf46.png

断路器处理逻辑

b9c7c0e28878c41eeb4bc5f693c791da.png

进行了服务降级

Spring Cloud客户端服务调用的地方:

e5fc17b59825c8d6d5810169597181aa.png

Spring Cloud客户端主启动工程

dd56357f4fb05c2051561ebcf8340942.png

其中@EnableDiscoveryClient表示方便注册中心发现,@EnableFeignClients表示允许Feign客户端调用

启动Spring Cloud客户端

c08a44d7add3215259b8fd30f4e90b17.png

在Nacos注册中心里面

c39e6b66c993ec205109f822b522cc5f.png

服务都已注册至注册中心

打开PostMan测试

7af3bb06e9c43e9a27fe927700b646ff.png

如此,Nacos作为微服务注册中心的例子已演示完毕。

五、Nacos作为配置中心

开启Nacos作为配置中心的Maven组件:spring-cloud-starter-alibaba-nacos-config

0360659de690032fcb5a2f1519e394aa.png

配置文件bootstrap.yml指定配置中心地址:

44044304349016b99a6bf21f856813ea.png

使用文件类型yaml格式的配置

项目工程名为demo-feign-freeservice

ec39fc3eff1a2dfb8e8fbda2026c4b40.png

其application.yml使用

459daff516bc76f9674abfb96c500dea.png

表示要使用Nacos配置中心为demo-feign-freeservice-dev.yaml的文件

在Nacos打开配置中心

3f4c53f7fe004ea4f75e897760f1c408.png

新增data id为demo-feign-freeservice-dev.yaml的文件

a0976e40e0c09cf055f0644e4b23d0de.png

指定配置格式为yaml

adb449faa2c5c16135cf9d621789d084.png

配置内容

66f00c879c877eb8ff95a2d9697dca45.png

在Controller层新增接口,指定服务级别@RefreshScope

61a3366479843596145cda1f377b8dcf.png

引入以上配置中心指定的${config.info}

a328f0b613a2733375c9f3ffe0622cf8.png
51d9512dd5efa4ef5ae1b40ed1656484.png

接口里面引入配置

bbdef0b23bcda804868a50154257deb5.png

并使用@GetMapping("/configInfo")进行访问

启动项目,在浏览器输入http://localhost:8091/configInfo

如下

0b770f97b6abf684ef28c6811649e7e5.png

表示读取到了配置结果

Nacos作为配置中心的讲解说明完毕

六、总结

Nacos作为注册中心是一款很好的服务发现组件,Nacos作为配置中心代替了固有的Spring Cloud Config组件。除此之外,Nacos作为配置中心,还能指定命名空间和分组,笔者后面会讲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值