2021/11/4 北京 nacos服务管理与nacos配置管理

spring 
  cloud:
    nacos:
      server-addr:localhost:8848 //nacos服务地址,默认8848
    discovery:
         cluster-name:HZ  //配置集群

nacos集群

nacos把一个服务的多个实例部署到多个机房,根据地域划分为不同的集群。在服务调用的时候,会尽可能的避免跨集群调用,也就是只有本地集群不可访问时,才会去其他集群。

 nacos控制台长这样,用老师的话来说就是很清爽

从图中可以看到,HZ(杭州)集群下有俩个服务实例,SH(上海)集群下有一个服务实例。注意图中的权重为1是什么意思呢

 nacos的负载均衡策略

第一步,先改变默认的轮询负载均衡策略,配置为nacos专用

userservice: #微服务名称
  ribbon:
    NFLoadBalancerRuleClassName:com.alibaba.cloud.nacos.ribbon.NacosRule

总结的话直接搬图,我是大自然的搬运工,就是不想那么累。注意找到服务列表以后,nacos是采用随机的方式挑选服务实例。

 nacos权重,下图就很明了了

问题来了,要是权重配为0(权重配置在0-1),会发生什么,答案是这个服务实例就压根不会再被访问到了.这个特性,有利于服务版本升级,很平滑地,用户无感知的就升级了!

nacos服务管理

如果你看不太懂这个图,我教你呀

nacos默认情况下所有实例都是临时实例,临时实例nacos发现他挂了,就直接给他剔除。
并且,临时实例和eureka一样是心跳检测来判断健康状态的。
非临时实例就不一样了,nacos亲儿子无疑了,nacos会主动询问你还活着吗,而且就算挂了,
nacos也不剔除,会等服务重启

而且由于定时拉取时效性比较差,nacos在定时拉取的基础上又加了一个push,一旦nacos发现
有服务挂了就会主动推送


nacos 配置管理

配置热更新,热更新就是不用重启,自动生效。这个配置文件呢要唯一,一般是这样的userservice-dev.yaml(服务名+生产环境,保障唯一性)。

项目启动后,先读取配置文件bootstrap.yml,它的优先级高于application.yml。读它的目的就是知道nacos地址,找到nacos控制台上唯一的配置文件userservice-dev.yaml,一一对应,好神奇

 你以为这就完了?还需要做点别的热更新才能生效

抓俩注解,@RefreshScoope +@Value,看起来就麻烦

 还有另外一种更麻烦的@ConfigurationProperties。不多讲,因为我也没太懂哈哈,给个图参考

 nacos集群

这可以不看因为我当时直接跳了去学Feign,我可不是劝退你的。为了完整知识,放个图意思意思

什么,你问我Feign是什么,就是一种取代RestTemplate,可以用一种更优雅的方式发送请求

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值