SpringCloud Alibaba - Nacos

1.安装与部署

Nacos是阿里巴巴开源的服务注册与发现、配置管理的组件,相当于是Eureka+Config的组合。 Nacos服务器是单独安装部署的,需要下载Nacos服务端程序,下载地址https://github.com/alibaba/nacos。
SpringCloud Alibaba - Nacos_第1张图片
SpringCloud Alibaba - Nacos_第2张图片
window下双击startup.cmd
SpringCloud Alibaba - Nacos_第3张图片登录Nacos,默认账号密码都是nacos
SpringCloud Alibaba - Nacos_第4张图片
点击shutdown.cmd可关闭。

在idea中配置nacos服务

细节可直接搜索idea配置nacos
SpringCloud Alibaba - Nacos_第5张图片
直接启动
SpringCloud Alibaba - Nacos_第6张图片

2.实现服务注册与发现

导入依赖

SpringCloud Alibaba - Nacos_第7张图片
子项目中引入依赖,以图书服务为例。
SpringCloud Alibaba - Nacos_第8张图片
和注册到Eureka一样,需要配置文件中配置Nacos注册中心的地址
SpringCloud Alibaba - Nacos_第9张图片
启动Nacos和bookservice服务,Nacos服务器上已经有book-service服务
SpringCloud Alibaba - Nacos_第10张图片
将borrow-service和user-service同样导入依赖,然后配置application.yml。
SpringCloud Alibaba - Nacos_第11张图片

SpringCloud Alibaba - Nacos_第12张图片
SpringCloud Alibaba - Nacos_第13张图片
启动user-service和borrow-service,查看服务配置。
SpringCloud Alibaba - Nacos_第14张图片

使用OpenFeign实现服务发现远程调用以及负载均衡,先在子服务user,book,borrow导入依赖。三个都是同样的依赖。

SpringCloud Alibaba - Nacos_第15张图片
编写访问接口
SpringCloud Alibaba - Nacos_第16张图片

SpringCloud Alibaba - Nacos_第17张图片

SpringCloud Alibaba - Nacos_第18张图片
SpringCloud Alibaba - Nacos_第19张图片
重启borrow-service,可以正常访问
SpringCloud Alibaba - Nacos_第20张图片
验证Nacos的负载均衡。建立两个book-service和user-service
SpringCloud Alibaba - Nacos_第21张图片SpringCloud Alibaba - Nacos_第22张图片SpringCloud Alibaba - Nacos_第23张图片SpringCloud Alibaba - Nacos_第24张图片
添加完需要将user和book服务配置文件中的port去掉
SpringCloud Alibaba - Nacos_第25张图片
bookController打印日志
SpringCloud Alibaba - Nacos_第26张图片
SpringCloud Alibaba - Nacos_第27张图片
调用,刷新三次
在这里插入图片描述
bookController打印
SpringCloud Alibaba - Nacos_第28张图片
SpringCloud Alibaba - Nacos_第29张图片

临时和非临时实例

SpringCloud Alibaba - Nacos_第30张图片
SpringCloud Alibaba - Nacos_第31张图片
在这里插入图片描述
例如将borrow-service给关闭,那么nacos服务上就没有borrow-service了,若将borrow-service设置为非临时实例,那么关闭后,nacos服务上还有borrow-service。
将borrow-service设置为非临时实例,更改配置文件。
SpringCloud Alibaba - Nacos_第32张图片
重启borrow-service
SpringCloud Alibaba - Nacos_第33张图片
此时关闭borrow-service
SpringCloud Alibaba - Nacos_第34张图片

3.集群注册与分区

SpringCloud Alibaba - Nacos_第35张图片
SpringCloud Alibaba - Nacos_第36张图片
将两个user-service和两个book-service分别集群到ChongQing和ChengDu。
SpringCloud Alibaba - Nacos_第37张图片

SpringCloud Alibaba - Nacos_第38张图片
SpringCloud Alibaba - Nacos_第39张图片
SpringCloud Alibaba - Nacos_第40张图片
此时已经有了两个地区的服务,但是目前没有按照区域优先进行调用。
SpringCloud Alibaba - Nacos_第41张图片
在borrow-service加入集群地区,如Chengdu
SpringCloud Alibaba - Nacos_第42张图片
此时重启borrow-service,然后访问借阅服务,但是仍采用轮询的方式调用book-service,并没有对Chengdu的book-service进行优先调用,因此需要配置。配置后重启borrow-service
SpringCloud Alibaba - Nacos_第43张图片
此时一直刷新调用服务,发现优先调用了集群分区为Chengdu的book-service,即配置成功,如下图。
在这里插入图片描述

SpringCloud Alibaba - Nacos_第44张图片
SpringCloud Alibaba - Nacos_第45张图片
此时若关闭Chengdu地区的book服务,则会访问Chongqing的book服务。
除了不同区域的实例,同一区域内的多个服务也可以指定优先级。可在Nacos中配置,也可在applicaiton.yml配置。

4.Nacos配置中心

在Nacos中新建配置文件
SpringCloud Alibaba - Nacos_第46张图片
SpringCloud Alibaba - Nacos_第47张图片
SpringCloud Alibaba - Nacos_第48张图片
发布后
SpringCloud Alibaba - Nacos_第49张图片
然后在对应的user服务导入依赖
SpringCloud Alibaba - Nacos_第50张图片
然后在user服务中添加bootstrap.yml配置文件
SpringCloud Alibaba - Nacos_第51张图片
SpringCloud Alibaba - Nacos_第52张图片
配置好重启user的两个服务,验证是否能访问数据库。
SpringCloud Alibaba - Nacos_第53张图片

Nacos支持热部署

对user-service配置文件进行修改。
SpringCloud Alibaba - Nacos_第54张图片
修改后发布,然后在控制层监听是否有新增的配置文件的值
在这里插入图片描述
重启user服务。进行调用
在这里插入图片描述
出现配置的test的值
SpringCloud Alibaba - Nacos_第55张图片
再次在Nacos修改test的值并发布
SpringCloud Alibaba - Nacos_第56张图片
SpringCloud Alibaba - Nacos_第57张图片
此时若不重启user服务再去访问发现test的值还是hot,没有发生改变,此时可添加注解@RefreshScope表示修改配置文件test的值可实施刷新,添加后重启user服务,若test值进行改变,则user服务不需要再重启即可更新test的值。
SpringCloud Alibaba - Nacos_第58张图片

6.Nacos命名空间

开发时区分开发环境、生产环境或引用归属类。
新增命名空间
SpringCloud Alibaba - Nacos_第59张图片
SpringCloud Alibaba - Nacos_第60张图片
然后将book服务和user服务配置到dev空间,修改配置文件
SpringCloud Alibaba - Nacos_第61张图片
SpringCloud Alibaba - Nacos_第62张图片
重启user和book服务,此时发现borrow服务在public,user和book服务在dev
SpringCloud Alibaba - Nacos_第63张图片
SpringCloud Alibaba - Nacos_第64张图片
此时访问http://localhost:8201/borrow/1,发现没有找到user-service。说明不在一个命名空间则是隔离的,不能进行访问的。
SpringCloud Alibaba - Nacos_第65张图片

7.Nacos实现高可用

SpringCloud Alibaba - Nacos_第66张图片
SpringCloud Alibaba - Nacos_第67张图片
SpringCloud Alibaba - Nacos_第68张图片
SpringCloud Alibaba - Nacos_第69张图片
新建nacos数据库,将nacos安装文件中conf下的nacos-mysql.sql导入。SpringCloud Alibaba - Nacos_第70张图片
给nacos数据添加一个用户,账号密码都是nacos,赋予所有权限。
SpringCloud Alibaba - Nacos_第71张图片

你可能感兴趣的:(SpringCloud,Alibaba,spring,cloud,spring,后端)