一、前言
微服务是将应用拆分多个服务,服务多了,配置文件管理起来就很麻烦,此时就需要配置管理中心来统一管理各个服务应用的配置文件。
二、添加依赖
pom.xml中添加spring-cloud-starter-alibaba-nacos-config
依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
因为用到了bootstrap.properties 需要添加spring-cloud-starter-bootstrap
依赖,否则bootstrap配置不生效
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
完整的pom.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.llh</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>consumer</artifactId>
<version>1.0.0</version>
<name>consumer</name>
<description>consumer description</description>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
</dependencies>
</project>
三、bootstrap.properties
删除application.properties
,创建bootstrap.properties
,内容如下:
# 应用名称
spring.application.name=consumer
# nacos配置中心
spring.cloud.nacos.config.server-addr=http://localhost:8848
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.namespace=83e9d384-d49e-4f40-84bf-c25612883dcc
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos
# nacos配置中心 公共配置文件
spring.cloud.nacos.config.shared-configs[0].data-id=common.properties
spring.cloud.nacos.config.shared-configs[0].refresh=true
spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
- 注意:
spring.cloud.nacos.config.namespace
与 nacos中的 namespace一致。 - 这里配置了
common.properties
为公共配置文件,如所有服务的注册中心都是一样,没必要每个服务都配置一遍。
四、Nacos创建配置文件
创建两个配置文件consumer.properties
和common.properties
consumer.properties
是consumer
的配置文件,就是简单的配置了启动端口。注意consumer.properties
的前缀和bootstrap.properties
中spring.application.name
一致。
consumer.properties
内容如下
# 端口
server.port=8888
common.properties
是公共配置文件,里面写了跟注册中心相关的配置信息。
内容如下
# 注册中心相关
spring.cloud.nacos.discovery.server-addr=http://localhost:8848
spring.cloud.nacos.discovery.namespace=83e9d384-d49e-4f40-84bf-c25612883dcc
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
启动项目后可以看到端口是8888,并且服务注册到nacos注册中心上,但是项目中bootstrap.properties
并没有配置端口和服务注册相关信息,由此可见端口配置信息和注册配置信息是从配置中心中动态读取的
五、结语
源码地址:https://github.com/tigerleeli/xiaohuge-blog/tree/master/spring-cloud-alibaba-config
nacos生产环境使用需要配置持久化,它默认是存文件的,这样很不安全,一般是用Mysql持久化。并且生产环境可能需要做Nacos集群,这些可以看一下官网。
同步微信公众号:小虎哥的技术博客