【微服务】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模式。