上一篇博客已经记录了Nacos的一个基础使用,这篇博客将记录一些进阶的使用内容。
1.微服务配置集群名称
如果微服务部署在了不同的集群中,可以通过一些配置进行集群名称指定
spring:
cloud:
nacos:
discovery:
cluster-name: HZ # 集群名称
效果如下:
2.配置同集群优先的负载均衡
默认的ZoneAvoidanceRule
并不能实现根据同集群优先来实现负载均衡。
因此Nacos中提供了一个NacosRule
的实现,可以优先从同集群中挑选实例。
spring:
cloud:
nacos:
discovery:
cluster-name: HZ # 集群名称
login-server:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
3.不同微服务的权重配置
配置权重直接在nacos中配置,权重一般为0~1之间,我们配置了一个0.1。
4.环境隔离
Nacos提供了namespace来实现环境隔离功能。
- nacos中可以有多个namespace
- namespace下可以有group、service等
- 不同namespace之间相互隔离,例如不同namespace的服务互相不可见
创建namespace
namespace的创建也是在nacos中直接创建
给微服务配置namespace
spring:
cloud:
nacos:
discovery:
namespace: 3c7d57be-3770-4740-88da-810e565ff5b6 # 命名空间,填ID
效果如下
如果微服务在不通的namespace中就不能相互调用了,调用会报一下错误
Caused by: java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: login-server
at org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:90) ~[spring-cloud-openfeign-core-2.2.7.RELEASE.jar:2.2.7.RELEASE]