一.服务注册
一.引入依赖
在springcloud-parent
父工程的pom文件中的<dependencyManagement>
中引入SpringCloudAlibaba的依赖:
<dependencyManagement>
<dependencies>
.......
<!--引入SpringCloudAlibaba的依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后在itheima-user和itheima-order中的pom文件中引入nacos-discovery依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
二配置nacos地址
在itheima-user和itheima-order的application.yml中添加nacos地址:
spring:
cloud:
nacos:
server-addr: localhost:8848
三.修改原来的负载均衡配置, 使用NacosRule
itheima-user:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
二.服务(集群配置)分级存储模型
itheima-user是服务,一个服务可以包含多个集群,如深圳、杭州,每个集群下可以有多个实例,形成分级模型
注意:微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。
1…给itheima-user配置集群
修改itheima-user的application.yml文件,添加集群配置:
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: SZ # 集群名称
2.同集群优先的负载均衡
默认的ZoneAvoidanceRule
并不能实现根据同集群优先来实现负载均衡。
因此Nacos中提供了一个NacosRule
的实现,可以优先从同集群中挑选实例。
2.1给order-service配置集群信息
修改order-service的application.yml文件,添加集群配置: