1.修改父项目parent标签中springboot的版本号
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>
2.在子项目中添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
3.在启动类前加@EnableDiscoveryClient注解
4.新建一个 bootstrap.yml 配置文件,配置nacos相关信息
server:
port: 7000 #指定端口
spring:
application:
name: demoson #指定项目名称
profiles:
active: dev #指定当前环境 dev开发 测试test 生成prod
cloud:
nacos:
discovery: #服务注册与发现
server-addr: localhost:8848 #nacos地址
namespace: #指定命名空间 可以删掉namespace不写默认public
#配置文件组成 : 通俗点 服务名称-指定环境.后缀名称 name-active.file-extension
config: #动态配置
server-addr: localhost:8848 #nacos地址
file-extension: yaml #配置文件类型 非常重要后缀一定要一致 xxx.yaml
namespace: #指定命名空间 可以删掉namespace不写默认public
5.配置文件关系
我们在本地有bootstrap.yml、application.yml还有在nacos上配了一个 demoson-dev.yaml
加载时先加载bootstrap.yml,然后是application.yml,最后是demoson-dev.yaml,当这三个中配置了相同的东西时,后加载的会把前面的覆盖掉
6.nacos分级明确的好处
Nacos默认的命名空间是public, Namespace主要用来实现隔离。
比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
Group默认是DEFAULT_ GROUP, Group可以把不同的微服务划分到同一个分组里面去。
Service就是微服务; 一个Service可以包含多个Cluster (集群),Nacos默认Cluster是DEFAULT, Cluster是对指定微服务的一个虚拟划分。
比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称 (GZ), 还可以尽量让同一个机房的微服务互相调用,以提升性能。
最后是Instance,就是微服务的实例。