SpringCloudAlibaba基础学习--nacos分布式配置中心
-
发布配置
- 安装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: 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 注意: spring.application.name需要与Data ID服务名称一致 group: 如果创建时选择默认组名这里就不用改 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); } }
- 测试访问 更新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的配置 访问
-
nacos数据持久化配置 官方文档:
- 导入数据到数据库 将nacos/conf目录下nacos-mysql.sql数据文件保存到mysql
- 配置数据库 nacos/config目录的application.properties新增配置如下 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 目前只支持mysql5.6.5+版本
- 启动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