1.Nacos介绍
Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件,相对于Eureka 功能更加丰富,在国内受欢迎程度高。Nacos安装地址 Release 1.4.7 (Jan 15th, 2024) · alibaba/nacos · GitHub
2.Nacos安装过程
下载安装包之后,解压到没有中文的路径下,我这里安装在D盘
Nacos默认端口是8848,windows系统可以在cmd窗口输入etstat -ano|findstr "8848"查看端口是否被占用。我的端口显示是闲置的可以使用
如果端口被占用,可以在conf文件夹里面的application.properties里面修改端口
在Nacos的bin目录下输入cmd打开命令窗口输入:startup.cmd -m standalone
启动Nacos
启动成功后在浏览器输入: http://192.168.17.1:8848/nacos/index.html,用户名和密码都是nacos。
3.Nacos服务分级存储模型
我们知道微服务里面的每一个springboot项目就是一个服务,服务对于的端口,例如8080、8081就是服务的实例,一个服务可以包含多个实例,假如说一个服务的不同实例被部署在一个机房,那么如果机房出现问题,这个服务就不能提供,甚至可能导致整个微服务项目崩溃报错,所以为了解决这个问题我们通常会把一个服务的实例分别放置多个机房。同一个机房的实例叫做集群。
服务跨集群调用问题:服务调用尽可能选择本地集群的服务,跨集群调用延迟较高,本地集群不可访问时才会取访问其他集群
Nacos配置集群信息:在application.properties文件里面配置spring.cloud.nacos.discovery.cluster-name属性
4.Nacos根据权重负载均衡
实际部署可能会遇到这种场景,服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。操作步骤如下
a:在Nacos控制台可以设置,权重值,点击编辑按钮,权重(0-1)权重为0不能访问。
权重为0的应用场景,如果系统功能需要升级无需等待用户下线,只需权重设置为0,如何升级服务,在开启服务设置权重,实现平滑升级。
5。Nacos和Eureka的区别
Nacos对于临时实例采用的机制和Eureka一样都是心跳机制,如果实例挂掉就会将其剔除,但是对于非临时实例采用的是主动询问机制,如果服务挂掉不会将其剔除,而是等待。面向消费者时Eureka采用的是拉取,而Nacos采用的是定向拉取和主动推送,如果服务在30s内挂掉会向消费者推送变更消息。