关于Nacos的知识点和有关的配置

Nacos服务分级存储模型

一个服务对应多个实例,最初,所有的实例安放在一个机房之中,这就相当于鸡蛋放在一个篮子里,如果这个机房出现了问题,那整个服务就挂掉了。

所以要将一个实例部署多个机房,容灾

服务跨集群调用问题

为什么要在两者之间添加集群呢,比如杭州的机房中存储有order-service服务,同时也有user-service服务, 上海的机房中存储有order-service服务,同时也有user-service服务,那么当我杭州的order-service想要调用user-service服务的时候,肯定调用杭州本地的更快,即优先调用本地集群提供的服务,只有在本地集群不可以,才会去外地调用。

 如何配置集群属性

修改配置文件即可,添加spring.cloud.nacos.discovery.cluster-name属性,HZ只是集群名字

 同时也要修改负载均衡策略的IRule为NacosRule,这个规则会先寻找与自己同集群的服务,在本地集群中采用随机的方式进行负载均衡,如果本地集群找不到,才会去其他集群寻找,并且会报警告

 根据权重负载均衡

实际部署中会出现这样的场景

  • 服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高

如果将权重设置为0,即不会对他发生访问,如果我们要进行版本升级,如果我们采用重启服务器的方式,那么如果有用户来访问,就会使得它们访问失败,但是如果现在我们有这个权重配置的情况。

 即我们先对8081降低权重到0,然后慢慢用户的请求就不会到达8081,然后此时再对8081进行版本升级,此时用户对此是无感知的,因为还有其他实例在运行,升级完成之后进行重启,然后将权重变为0.0几,没什么问题之后,再调成应有的权重,实现平滑升级

环境隔离 - namespcae

nacos不仅仅是注册中心,但是别忘了同时也可以存储数据

 Service的内部是集群,集群的内部就是服务实例了。两个NameSpcae之间的服务是不能发生相互调用的

NameSpace是用来区分生产环境,开发环境等的

group是分组的意思,订单和支付相关度较高,可以放到一个group中

但是这并非是死的,不是强制一定要使用的,当没有分组的时候,都会被分配到Default_GROUP中 

 默认都会在public中

 命名空间ID不填就是按uuid自动生成

修改命名空间就需要在配置文件中修改了

Nacos注册中心细节 

服务注册到Nacos时,可以选择注册为临时或非临时实例,通过下边的配置来设置,设置为false,他就不是非临时实例了,即是永久实例了

临时实例采用心跳模式,即定期主动的向Nacos发送信息,而非临时实例采用主动检测的方式。

临时实例心跳不正常会被剔除,非临时实例则不会被剔除

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值