Nacos-服务分级存储模型

back

Nacos-服务分级存储模型


①一级是服务(一个服务可以有多个实例)

②二级是集群(这些实例可以部署到不同的机房地区),例如北京或上海

③三级是实例,例如北京机房的某台部署了某服务的服务器

微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。例如:

Nacos配置服务集群属性

修改category-service的application.yml文件,添加集群配置:
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名称

重启两个category-service实例后,我们可以在nacos控制台看到下面结果:

我们再次复制一个category-service启动配置,添加属性:
-Dserver.port=8083 -Dspring.cloud.nacos.discovery.cluster-name=SH

启动CategoryApplication3后再次查看nacos控制台:

同集群优先的负载均衡

默认的ZoneAvoidanceRule并不能实现根据同集群优先来实现负载均衡。
因此Nacos中提供了一个`NacosRule`的实现,可以优先从同集群中挑选实例。

1)给book-service配置集群信息
修改book-service的application.yml文件,添加集群配置

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名称

2) 修改负载均衡规则
修改book-service的application.yml文件,修改负载均衡规则:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: CD
        namespace: fb473de2-f365-4348-a15e-652466531159
    loadbalancer:
      nacos:
        enabled: true # 采用Nacos负载均衡规则