1.5 nacos注册中心
一、认识和安装
认识Nacos:
Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件,相比Eureka功能更加丰富
Nacos的安装:
详见附录:附录
二、快速入门
将服务注册到Nacos
在腐工程中导入Nacos坐标依赖
<!-- SpringCloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 引入Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${nacos-version}</version> <type>pom</type> <scope>import</scope> </dependency>备注:因为nacos基于Cloud,所以,cloud也需要存在
因为使用了nacos,所以原来使用eureka的坐标就要全部注释掉,换成nacos的客户端依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>修改yml文件,将eureka配置修改为nacos配置
spring: cloud: nacos: server-addr: 地址:端口号备注:nacos默认端口号8848
启动,并查看nacos的服务列表中是否有内容(服务管理-服务列表)
三、服务多级存储模型
Nacod分级存储模型:
服务分地域存放的概念想法
备注:多级地域缓存模型
服务跨集群调用问题
可以访问本地服务
可以访问外地服务
建议:默认访问本地的服务,因为的效率更高
本地服务不可访问时候,再访问其他集群
如何配置实例的集群属性
修改yml配置
备注:不同的地方配置不同的地域配置,到时候可以在nacos中展示不同的内容
四、NacosRule负载均衡
修改负载均衡为同集群优先(默认轮询)
修改yml配置:
备注:修改在调用方——消费方
如果本地找不到服务,会到其他集群中寻找,同时报告一个警告信息
五、服务器实例的权重配置
根据权重负载均衡
Nacos提供了权重配置来控制访问频率,权重越大,访问频率越高
修改权重:权重范围一般在0-1之间
进入服务列表,找到对应的服务实例列表
点击编辑,在弹窗中修改权重,保存即可
使用骚套路:
维护升级!权重调整为0,不会受到任何访问
升级成功后,权重逐渐调整,少量请求,帮忙测试!
六、环境隔离——namespace
Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离
类似开发环境,测试环境,生产环境等等
新建命名空间
nacos系统中,左侧菜单栏找到命名空间
进入后新建命名空间即可
ID:默认UUID生成
名称:命名空间的名称
描述:就是描述
代码配置指定命名空间环境
修改yml配置
备注:namespace这里填写创建命名空间时候的id!!!
七、Nacos与Eureka对比
临时实例与非临时实例
服务注册到Nacos时候,可以选择注册为临时实例和非临时实例,通过下面的配置来设置
备注:配置服务为非临时服务(不建议)
临时服务心跳不正常会比剔除
非临时服务心跳不正常不会被剔除
八、注意
SpringBoot 2.5 版本已经弃用Ribbon做OpenFeign的负载均衡操作
SpringCloudAlibaba在2021.x版本后弃用Ribbon做负载均衡
注意:如果使用了不匹配的版本,那么会造成远程调用失败的问题,甚至启动失败的问题
最后更新于
这有帮助吗?