目录
一、服务注册到Nacos
1、引依赖
父工程的pom文件中,在<dependencyManagement>中添加依赖:
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
在各个服务对应的pom文件中添加以下依赖,进行服务注册 / 发现
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2、注册
为每个服务设置服务名
spring:
application:
name: userservice #服务名称
配置Nacos地址,进行服务注册到Nacos注册中心,并在Nacos的服务列表中可以查看。比如我的本地Nacos启动后访问地址为:
spring:
cloud:
nacos:
server-addr: localhost:8848 #Nacos地址
3、配置集群
微服务互相访问时,应该尽可能访问同集群实例。当本集群内不可用时,才访问其它集群。
在Nacos页面通过服务详情来查看集群
application.yml 文件中配置以下内容,配置所属集群:
spring:
cloud:
nacos:
discovery:
cluster-name: colony1 # 集群名称
4、配置负载均衡
在各个服务之间进行访问时,比如A访问B,B服务有多个,以何种方式去访问B服务
在服务的application.yml文件中添加以下内容:
##针对某个服务配置负载均衡的规则
userservice: #服务名
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
5、配置命名空间
各命名空间之间相互隔离,只能访问同一命名空间的服务。
在nacos页面添加命名空间:
spring:
cloud:
nacos:
discovery:
namespace: f7a639a5-39a5-41ae-8590-97cc68995e42 #值为命名空间ID
6、配置是否为临时实例
false 非临时实例,nacos主动询问服务的状态 ,服务挂掉不会剔除,
true 临时实例,采用心跳监测,将挂掉的剔除
spring:
cloud:
nacos:
discovery:
ephemeral: true