1:Nacos 是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高,也是一个注册中心。
2:在cloud-demo父工程的pom文件中的<dependencyManagement>
中引入SpringCloudAlibaba的依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后在user-service和order-service中的pom文件中引入nacos-discovery依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3:在服务中进行配置(端口号8848是nacos默认端口,在配置时确保该端口没有被占用)
spring:
cloud:
nacos:
server-addr: localhost:8848
4:服务分级存储模型(在这里呢,一个项目可以有多个服务,一个服务可以有多个集群,在每个集群下又对应多个实例。)
微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群
5:给提供者配置集群(假如该提供者为userservice)
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: HZ # 集群名称
6:同集群优先的负载均衡(消费者)
(1):给消费者配置集群(假如消费者为orderservice)
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: HZ # 集群名称
(2):在消费者中修改负载均衡规则(因为这里呢,其实是消费者要用到提供者给的接口,所以呢消费者先去注册中心找到该提供者,然后再获取信息)
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则