Consul服務注冊與發現 Consul配置步驟
consul下載地址
Install | Consul | HashiCorp Developer
啟動需要在 下載好的文件夾里 用cmd 運行consul agent -dev啟動consul
Consul配置
配置pom
<!--SpringCloud consul config-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
新增配置bootstrap.yaml
bootstrap.yaml 是系統類配置項 它是最先配置的 優先級最高
spring:application:name: cloud-payment-service //作為加入服務中心之后這個微服務的名稱####Spring Cloud Consul for Service Discoverycloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}config:profile-separator: '-' # default value is ",",we update '-' //Consul k v 鍵值對命名規則format: YAML
在主啟動類 添加注解
添加@EnableDiscoveryClient //啟動服務發現
如果使用RestTemplate作為發起http請求的配置 需要在上面加 @LoadBalanced 啟動負載均衡
@Configuration
public class RestTemplateConfig {? @Bean
? @LoadBalanced
? public RestTemplate restTemplate()
? {
? return new RestTemplate();
? }
}
Consul k v 編寫規則 config/微服務名稱/data
Consul動態刷新
動態刷新 是改了服務配置中心 kv 里面的data后能夠實時的獲取變化的配置
在主啟動類添加@RefreshScope //動態刷新
并在bootstrap.yaml添加
watch:
wait-time: 1
spring:application:name: cloud-payment-service####Spring Cloud Consul for Service Discoverycloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}config:profile-separator: '-' # default value is ",",we update '-'format: YAMLwatch:wait-time: 1
ault value is “,”,we update ‘-’
format: YAML
watch:
wait-time: 1