1.Nacos原理
2.模型领域
3.下载地址:nacos
这里本人下载的是2.0.4版本
4.nacos配置文件与启动命令
在conf文件夹中找到application.properties文件中改数据库连接
第一次启动可以在bat文件下找到startup.cmd文件编辑将模式改成单列模式
或者使用命令 startup.cmd -m standalone
启动成功,访问 http://127.0.0.1:8848/nacos 帐号密码都默认为nacos
5.spring整合nacos
5.1首先我们新建一个项目
导入父工程依赖版本
<!-- 声明依赖版本 -->
<properties>
<yy.version>0.0.1-SNAPSHOT</yy.version>
<java.version>1.8</java.version>
<spring-boot.version>2.5.4</spring-boot.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<alibaba.nacos.version>2.0.3</alibaba.nacos.version>
<spring-web.version>2.5.4</spring-web.version>
</properties>
<!-- 依赖声明 -->
<dependencyManagement>
<dependencies>
<!-- SpringCloud 微服务 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringCloud Alibaba 微服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Alibaba Nacos 配置 -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${alibaba.nacos.version}</version>
</dependency>
<!-- SpringBoot 依赖配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringBoot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-web.version}</version>
</dependency>
<dependency>
<groupId>com.yy</groupId>
<artifactId>nacos_service_one</artifactId>
<version>${yy.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- bootstrap 启动器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.4</version>
</dependency>
</dependencies>
5.2新建2个子模块
<dependencies>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.4</version>
</dependency>
</dependencies>
2个模块的依赖相同
5.3为2个子模块创建启动类,并创建bootstarp.yml文件
5.4在命名空间中创建一个dev
该空间可以在命名空间中创建,这里不做过多说明!
5.5首先我们在dev空间下创建二个配置
dataId这边我们直接自定义
grop这边没进行分组,默认default_group
5.6修改子模块中.yml文件 2个模块中配置类似
#指定端口号
server:
port: 3007
spring:
application:
#模块名
name: service1
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery: #这边要在服务管理先创建一个名为dev的空间,不写这个默认在public空间下
# 服务注册地址
server-addr: 127.0.0.1:8848 #本机默认为127.0.0.1:8848
namespace: dev
config:
#服务注册地址
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yml #dataId不写默认为application.name+file-extension service1.yml
namespace: ${spring.cloud.nacos.discovery.namespace}
# group 不写默认为,如果在nacos进行了分组并想要组名上的配置,这边必须写上,不然默认找default_group
然后新建一个controller层读取配置文件
启动service1,并访问
读取成功。
5.6多个服务调用同一个配置文件
在nacos上创建一个application.yml文件,并在bootstarp.yml上加上
namespace同理默认
如需多个共享配置文件应当
在service.two上
这里需要在service1.yml上配置多一个user1的配置启动子模块分别访问
可以看到在名字相同的情况下 nacos配置文件会优先采用自己的配置,如果本身上的配置没有没有,在采用共享配置文件上的配置