一、保护阈值(Protect Threshold)
定义与功能:
- 保护阈值是Nacos为了防止因过多实例故障导致所有流量全部流入剩余健康实例,继而造成流量压力将剩余健康实例压垮形成雪崩效应而设置的一个参数。
- 它是一个0到1之间的浮点数,用于定义集群中健康实例占比允许的最小值。当健康实例占比小于此值时,Nacos会将所有实例(包括健康实例和非健康实例)返回给客户端,以牺牲部分流量为代价,保证集群中剩余的健康实例能正常工作。
设置与触发:
- 可以在Nacos的服务详情中查询和设置保护阈值。
- 当实际健康实例数占总服务实例数的比例小于设置的保护阈值时,保护阈值功能将被触发。
二、权重(Weight)
定义与功能:
- 权重是Nacos中用于实现负载均衡的一种手段。
- 通过为服务实例设置不同的权重值(0~10000之间),可以控制服务实例被访问的频率。权重越高,被访问的频率越高;权重为0时,实例将完全不会被访问。
应用场景:
- 在服务器性能有差异的情况下,可以通过设置权重来让性能好的机器承担更多的用户请求。
- 在服务升级时,可以通过调整权重来进行平滑升级,减少对新版本不稳定性的影响。
三、命名空间(Namespace)
定义与功能:
- 命名空间是Nacos中最顶层、也是包含范围最广的概念,用于强制隔离类似环境或租户等场景。
- 通过命名空间,可以在同一个Nacos实例上创建多个独立的环境(如开发环境、测试环境、生产环境),方便进行配置和服务的管理。
使用与管理:
- 在Nacos控制台中可以创建、编辑和删除命名空间。
- 在项目开发中,可以通过配置
spring.cloud.nacos.discovery.namespace
来指定服务使用的命名空间。
四、分组(Group)
定义与功能:
- 分组是Nacos中次于命名空间的隔离概念,主要用于逻辑区分一些服务使用场景或不同应用的同名服务。
- 通过分组,可以将同一个服务的不同版本或不同环境的实例进行区分和管理。
使用与管理:
- 分组名默认为
DEFAULT_GROUP
,在Nacos控制台的服务列表中可以看到。 - 在项目开发中,可以通过配置
spring.cloud.nacos.discovery.group
来设置服务使用的分组。
五、集群管理
定义与功能:
- 集群管理是Nacos提供的一项重要功能,用于对服务实例进行分组管理,以实现高可用性和负载均衡。
- 通过集群管理,可以将服务实例分布在不同的物理节点或虚拟机上,提高系统的容错能力和扩展性。
使用与管理:
- 在Nacos控制台中,可以创建和管理集群,为每个集群设置不同的地址和权重等参数。
- 服务实例在注册到Nacos时,可以指定所属的集群,以便Nacos根据集群信息进行路由和负载均衡。