一、通過客戶端刷新,使配置文件生效
1、創建遠程倉庫,獲取遠程倉庫地址(省略),application.yml
2、創建服務端工程
3、添加依賴
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies>
4、加注解
@EnableDiscoveryClient @EnableConfigServer //激活對配置中心的支持 @SpringBootApplication public class SpringCloudConfigServerMqApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigServerMqApplication.class, args); } }
5、修改配置application.properties
spring.application.name=spring-cloud-config-server server.port=8500 spring.cloud.config.server.git.uri=https://***.git spring.cloud.config.server.git.username=*** spring.cloud.config.server.git.password=*** eureka.client.serviceUrl.defaultZone=http://**:***/eureka/
6、請求方式
1、application-{profiles}.yml請求 http://192.168.0.131:8500/application-local.yml http://192.168.0.131:8500/application-test.yml http://192.168.0.131:8500/application-prod.yml 2、application/{profiles}/{lable} http://192.168.0.131:8500/application/local/master http://192.168.0.131:8500/application/test/master http://192.168.0.131:8500/application/prod/master 3、{lable}/application-{profiles}.yml http://192.168.0.131:8500/master/application-local.yml http://192.168.0.131:8500/master/application-test.yml http://192.168.0.131:8500/master/application-prod.yml
7、創建客戶端工程
8、添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
9、加注解
@SpringBootApplication @EnableDiscoveryClient public class SpringCloudProviderDynastyMqApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudProviderDynastyMqApplication.class, args); } }
10、修改配置bootstrap.yml
spring: application: name: dynasty cloud: config: uri: http://192.168.0.131:8500 profile: prod label: master management: endpoints: web: exposure: include: refresh,health,info
11、發送請求
12、修改遠程倉庫的值,使用postman刷新
此種刷新方式的缺點在於:配置文件有變化時,需要客戶端主動刷新,當客戶端有很多時,刷新不是很方便,,希望有一種方式可以通過服務端刷新
二、使用kafka通過刷新服務端來使配置生效
1、服務端修改
1.1新增依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- kafka依賴 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-kafka</artifactId> </dependency>
1.2修改配置
eureka: client: serviceUrl: defaultZone: http://ip:port/eureka/ server: port: 8500 spring: application: name: spring-cloud-config-server-mq cloud: config: server: git: uri: https://giturl.git username: username password: password bus: enabled: true stream: kafka: binder: brokers: 192.168.0.128:9092,192.168.0.129:9092,192.168.0.130:9092 management: endpoints: web: exposure: include: "*"
1.3啟動項目
2、客戶端修改
2.1添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-kafka</artifactId> </dependency>
2.2修改配置
spring: application: name: dynasty cloud: config: uri: http://192.168.0.131:8500 profile: prod label: master bus: enabled: true kafka: bootstrap-servers: 192.168.0.128:9092,192.168.0.129:9092,192.168.0.130:9092
2.3啟動項目
3、請求示例
3.1git配置
3.2請求
3.3修改git配置
3.4調用刷新接口
3.5再次請求