定制开发小程序Nacos的集群配置、NacosRule负载均衡、权重设置、namespace

定制开发小程序当我们的服务越来越多,定制开发小程序服务实例越来越多(比如说userservice,有8081、8082、8083定制开发小程序端口三个实例),定制开发小程序我们在同一个机房部署定制开发小程序所有的服务很不安全,定制开发小程序应对突发状况时,定制开发小程序就像鸡蛋放在一个篮子里;很不安全,很不友好,定制开发小程序所有我们需要分开部署机房与服务器;

一个服务可以分多个集群部署,一个服务器可以部署多个服务(但是一般不会这么做,一般一台服务器就只部署一个服务实例),一个集群可以有多个实例;
那我们该如何配置集群呢?

服务启动前,配置好集群属性,再进行启动:
例如:
给userservice配置集群HZ(杭州),启动两个userservice实例:8081、8082,此时这两个实例都部署在HZ集群上


此时,再修改集群名,启动一个userservice3,这个实例就部署在SH(上海)集群上了

可以再Nacos中看到部署的服务实例:

点击“详情”:可以看到集群和部署的实例

总结:

NacosRule负载均衡

以上我们把userservice1(服务提供者)和userservice2(服务提供者)配置在了HZ(杭州)集群,userservice3(服务提供者)配置在了SH(上海)集群。
操作:把orderservice(服务消费者)也部署在HZ集群:

此时我们的orderservice(服务消费者)也配置到HZ集群,再调用userservice(服务提供者)时,还是会使用默认的算法;且不分集群(userservice1、2、3都会轮询调用);

这是很不明智的,因为现实情况中,当我们在杭州的服务orderservice(服务消费者),要去调用上海的远程服务userservice13,肯定会比同一个集群的userservice1、2更加慢,增加了时间损耗,舍近而求远

那我们要怎么去设置让orderservice(服务消费者)设置默认访问和自己在同一个集群上的服务呢?
这就引出了我们的NacosRule负载均衡:
配置NacosRule负载均衡之后,会优先访问同一集群的服务提供者

注意:配置NacosRule之后,请把原来有的的负载均衡配置替换、注释或删除,不然Nacos的负载均衡配置无法生效

在orderservice(服务消费者)配置好NacosRule负载均衡之后,会自动调用和自己在同一个集群的服务,也就是userservice1和2,不会调用远程集群的userservice3

在orderservice(服务消费者)调用同一个集群的多个userservice服务实例时,会进行随机访问服务实例;也就是说这里的userservice1和2,会被orderservice随机访问,而3由于不在同一个集群,不会被优先访问。

那如果此时,同一个集群的userservice1、2服务宕机了,orderservice在调用时,本集群没有服务可调时,orderservice会调用不同集群的userservice3吗?
会!但是会有警告:本来访问的HZ集群,但是此时出现了一次跨集群访问,访问了SH集群的userservice3

总结:

Nacos服务实例的权重设置

实例的权重控制:
1、Nacos控制台可以设置实例的权重值,0~1之间
2、同集群内的多个实例,权重越高被访问的频率越高
3、权重设置为0则完全不会被访问

在Nacos服务页面可以对每个实例进行权重设置

Nacos权重设置的一个应用:
场景:假如当前公司要把一个服务进行升级(假设有多个集群 )
以前:以前的做法是等到夜深人静,用户最少的时候,把服务停掉,重启;
缺点是:总有用户在线,停掉服务,用户体验极差
使用Nacos权重:把其中一个服务实例权重设置为0,渐渐地就不会有请求发到这个服务上来,然后停掉这个服务实例,进行重启更新;此时其他服务正常运行,只是压力稍微大一点;然后等这个服务更新完毕,再把其他其他实例如法炮制,依次更新;
好处是:用户感觉不到服务已经更新完毕了,且不需要等到用户少的时候进行更新,避免深夜加班

namespace

Nacos作为服务注册中心,同时也是配置中心
Nacos中的配置文件,隔离从大到小:namespace、Group、service/Data,不同namespace的服务不可以相互访问


如果上面的命名空间id不填,则会自动生成:

设置好namespace之后,在项目配置文件中设置使用哪一个命名空间,需设置namespace的id:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发