【微服务】Nacos

发布时间:2025-06-24 16:47:40  作者:北方职教升学中心  阅读量:682


一、安装。

1、官方网址󿄚https://nacos.io/download/nacos-server/。
2、启动:找到bin目录下的。startup.cmd。双击启动󿀌或者打开命令窗口输入:

startup。.。cmd。 -。m standalone。

双击启动如下:可访问控制台地址。
在这里插入图片描述

访问后的地址如下༚
在这里插入图片描述
登录:默认账号和密码都是。nacos。
在这里插入图片描述

二、注册。

1、在clouddemo工程中添加spring-cloud-管理依赖alibaba。

<!。--。nacos的管理依赖。--。><dependency。><groupId。>com。.。alibaba。.。cloud。</。groupId。><artifactId。>spring。-。cloud。-。alibaba。-。dependencies。</。artifactId。><version。>2.2。.5。.。RELEASE。</。version。><type。>pom。</。type。><scope。>import。</。scope。></。dependency。>

2、注释order-serviceuser-原eureka依赖于service。
在这里插入图片描述

3、客户端依赖添加nacos。

<!。--。依赖nacos的客户端。--。><dependency。><groupId。>com。.。alibaba。.。cloud。</。groupId。><artifactId。>spring。-。cloud。-。starter。-。alibaba。-。nacos。-。discovery。</。artifactId。></。dependency。>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
平衡成功的负载。
在这里插入图片描述
在这里插入图片描述

Nacos服务分级存储模型。

在这里插入图片描述

1、修改spplication.yml,添加以下内容。
在这里插入图片描述
修改为HZ后,可以直接启动useraplication和useraplication2,这两个在HZ集群。
在这里插入图片描述
修改成SH󿀌启动Useraplication3󿼌此时Useraplication3就在SH集群中。
2、集群变化可以在服务台上看到。
在这里插入图片描述
在这里插入图片描述

Nacosrule修改了集群负载均衡规则。

orderservice也设置在HZ集群(8081 8082),查看调用时是否优先选择本地集群。
在这里插入图片描述
但发送请求发现默认选择。轮询。,即8081、8082、8083,无论是集群内还是集群外,所有人都收到了请求。如何解决:
1、修改order-service中的aplication.yml,HZ(设置集群;以上)
2、在order-service中设置负载平衡的IRule是Nacosrule,这一规则将优先考虑与自己相同集群的服务。

userservice。:。ribbon。:。NFLoadBalancerRuleclassName。:。com。.。alibaba。.。cloud。.。nacos。.。ribbon。.。NacosRule。

发送五个请求,80811发现都在同一集群中 在8082下,而且暂时没有8083。
在这里插入图片描述
在这里插入图片描述
NacosRule。首先选择本地集群󿀌在当地集群中随机访问#xff0c;将8081 8082停止服务,再次发送请求:
在这里插入图片描述
在这里插入图片描述
3、注意将user-service的权重设置为1。

五、根据权重负荷平衡。

1、Nacos控制台可以设置实例的权重值,首先选择实例后面的编辑按钮。
在这里插入图片描述
在这里插入图片描述
Nacos控制台可以设置实例的权重值,O~1与集群中的多个例子,权重越高,被访问的频率越高,权重设置为0,根本不会被访问。

六、环境隔离-namespace。

在Nacos中,服务存储和数据存储的最外层是一个名字。namespace。东西,用来做。最外层隔离。
在这里插入图片描述
1、创建命名空间。
在这里插入图片描述
在这里插入图片描述

2、修改服务命名空间。
修改order-serviceapplication.yml,添加namespase。
在这里插入图片描述
在这里插入图片描述
此时,从orerservice发送请求,8081 8082 8083年收不到󿀌因为它被命名空间隔离。
在这里插入图片描述

比较Eureka和Nacos。

在这里插入图片描述
设置临时实例(默认情况下,true),停止orderservice,直接消失在dev中。
再设置非临时实例(false),重启orderservicec;再次检查状态。
在这里插入图片描述
在这里插入图片描述
此时,主动停止服务,爆红后,仍然存在,不会删除,重启后仍然存在。
在这里插入图片描述
1、Nacos和eureka。共同点。

  • 支持服务注册和服务提取。
  • 支持服务提供者的心跳进行健康检测。

2、Nacos和Eureka。区别。

  • Nacos支持服务器主动检测供应商状态:临时实例采集 心跳模式,采用主动检测模式进行非临时实例。
  • 临时实例心跳异常会被淘汰,没有临时的例子是不会被排除的。
  • Nacos支持服务列表变更的消息推送模式,更新更及时的服务列表。
  • Nacos集群默认采用AP方式,非临时实例在集群中存在时,采用CP模式;Eureka采用AP模式。