- 发布配置
- 安装nacos
安装步骤: https://blog.csdn.net/xiaobo5264063/article/details/105149955
访问 http://127.0.0.1:8848/nacos - 发布配置
选择配置管理-->配置列表-->'+'
Data ID: 服务名称(Spring.application.name名称)+版本('-'dev、test、pre、pro可为空)+格式('.'Properties、Yaml等)
Group:默认
选择-->'发布' - 发布成功
- 项目整合
- 创建项目
pom.xml新增配置:<!-- nacos整合服务注册与发现--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.2.2.RELEASE</version> </dependency> <!-- nacos整合分布式配置中心--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>0.2.2.RELEASE</version> </dependency>
- 配置文件
resources/application.yml:server: port: 9001
resources/bootstrap.yml:
注意: spring.application.name需要与Data ID服务名称一致 group: 如果创建时选择默认组名这里就不用改spring: application: ###服务的名称 name: pitch-member cloud: nacos: discovery: ###nacos注册地址 server-addr: 127.0.0.1:8848 enabled: true config: ###配置中心连接地址 server-addr: 127.0.0.1:8848 ###分组 group: DEFAULT_GROUP ###nacos上Data ID配置文件类型 file-extension: properties
bootstrap.yml 用于应用程序上下文的引导阶段,优先加载。
application.yml 由父Spring ApplicationContext加载。 - 创建测试类
import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope // 开启当前类的动态刷新 public class TestController { @Value("${pitch.username}") private String username; @GetMapping("/name") public String name() { return "hello -"+username; } }
- 启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Hello world! * */ @SpringBootApplication public class AppMember { public static void main( String[] args ) { SpringApplication.run(AppMember.class); } }
- 测试访问
http://127.0.0.1:9001/name
更新nacos配置再访问
- 多环境配置文件读取
- 登录nacos
创建pitch-member-dev.properties文件
创建pitch-member-prd.properties文件
- 配置文件
bootstrap.yml配置如下spring: application: ###服务的名称 name: pitch-member cloud: nacos: discovery: ###nacos注册地址 server-addr: 127.0.0.1:8848 enabled: true config: ###配置中心连接地址 server-addr: 127.0.0.1:8848 ###分组 group: DEFAULT_GROUP ###nacos上Data ID配置文件类型 file-extension: properties profiles: ### 区分多环境配置文件读取 active: dev
- 启动
读取pitch-member-dev.properties的配置 访问 http://127.0.0.1:9001/name
- nacos数据持久化配置
官方文档: https://nacos.io/zh-cn/docs/deployment.html
- 导入数据到数据库
将nacos/conf目录下nacos-mysql.sql数据文件保存到mysql
- 配置数据库
nacos/config目录的application.properties新增配置如下
目前只支持mysql5.6.5+版本spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
- 启动nacos
测试新增配置,并查看config_info表数据。
- nacos配置中心集群搭建
- 原理
订单服务启动时,默认会和其中一台建立长连接(如:127.0.0.1:8848),并读取配置。
当nacos8848不可用时,此时就会转移到nacos8849上。
- 项目配置
在bootstrap.yml配置如下:spring: application: ###服务的名称 name: pitch-member cloud: nacos: discovery: ###nacos注册地址 集群 server-addr: 127.0.0.1:8848,127.0.0.1:8849 enabled: true config: ###配置中心连接地址 集群 server-addr: 127.0.0.1:8848,127.0.0.1:8849 ###分组 group: DEFAULT_GROUP ###nacos上Data ID配置文件类型 file-extension: properties
- 测试
启动127.0.0.1:8848
启动127.0.0.1:8849
启动订单服务
停止8848的服务,在修改8849的配置.......
- sucesss