Consul微服務的配置中心體驗篇
Spring Cloud Consul
專案是針對Consul的服務治理實現。Consul是一個分散式高可用的系統,具有分散式、高可用、高擴充套件性
Consul
Consul 是 HashiCorp 公司推出的開源工具,用於實現分散式系統的服務發現與配置。與其他分散式服務註冊與發現的方案,Consul的方案更“一站式” ,內建了服務註冊與發現框 架、具有以下性質:
● 分佈一致性協議實現
● 健康檢查
● Key/Value儲存
● 多資料中心方案
不再需要依賴其他工具(比如ZooKeeper等)
新增依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
consul-all依賴提供了哪些功能?
<!--訊息匯流排,提供配置實時重新整理,不再依賴中介軟體-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-bus</artifactId>
</dependency>
<!--consul的配置中心功能-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<!--服務註冊和發現功能-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
bootstrap.yml
這裡要注意是要配置在 bootstarp.yml
spring:
application:
name: pig-consul
cloud:
consul:
host: localhost
port: 8500
config:
enabled: true
format: KEY_VALUE
watch:
enabled: true
prefix: pig-config
安裝consul
下載: https://www.consul.io/downloads.html
使用:(dev模式,生產建議cluster模式)
-dev表示開發模式執行,使用-client 引數可指定允許客戶端使用什麼ip去訪問,例如-client 127.0.0.1 表示可以使用。
consul agent -dev -client 127.0.0.1
生產配置參考:
https://www.consul.io/intro/getting-started/join.html
http://127.0.0.1:8500/ui/ 去訪問
配置config
demo
@RestController
public class DemoController {
@Value("${author}")
private String author;
@GetMapping("/demo")
public String demo() {
return author;
}
}
關於實時重新整理配置
spring:
cloud:
consul:
config:
watch:
enabled: true
然後應用要開啟定時任務
@EnableScheduling
總結
- 相較於spring cloud config 的配置中心,使用起來較為麻煩,但是對於實時重新整理,這塊要優於spring cloud config 的,不依賴於中介軟體的訊息通知,也不會出現服務下線的問題。
- 這篇文章主要是入門,更高階的使用Consul Config 結合 Git 來做版本控制,請參考我後邊的文章
- [關於pig:基於Spring Cloud、oAuth2.0開發基於Vue前後分離的開發平臺,支援賬號、簡訊、SSO等多種登入,提供配套視訊開發教程]
相關文章
- 微服務註冊發現配置中心-consul微服務
- 使用 Consul 作為 Python 微服務的配置中心Python微服務
- (6)go-micro微服務consul配置、註冊中心Go微服務
- 微服務框架/配置中心/註冊中心微服務框架
- 微服務架構 | 3.4 HashiCorp Consul 註冊中心微服務架構
- Spring Cloud Consul:服務治理與配置中心SpringCloud
- 微服務之分散式配置中心微服務分散式
- 微服務配置中心完全解讀微服務
- 微服務架構之「 配置中心 」微服務架構
- 【Nacos】微服務配置中心介紹微服務
- 基於Golang的微服務——ConsulGolang微服務
- 利用Spring Boot實現微服務的配置中心Spring Boot微服務
- consul 作為服務註冊與發現和配置中心
- 微服務新體驗之Aspire初體驗微服務
- 微服務Consul系列之服務部署、搭建、使用微服務
- .Net Core微服務——服務發現:Consul(一)微服務
- .Net Core微服務——服務發現:Consul(二)微服務
- 微服務Consul系列之叢集搭建微服務
- 【微服務】之三:從零開始,輕鬆搞定SpringCloud微服務-配置中心微服務SpringGCCloud
- 隨行付微服務之配置中心ConfigKeeper微服務
- spring cloud分散式微服務-配置中心git示例SpringCloud分散式微服務Git
- ABP微服務系列學習-對接Apollo配置中心微服務
- Spring Cloud構建微服務架構—配置中心SpringCloud微服務架構
- Ocelot+Consul實現微服務架構微服務架構
- 微服務Consul系列之服務註冊與發現微服務
- .Net Core微服務——Consul(4):主從、叢集微服務
- Spring Cloud構建微服務架構分散式配置中心SpringCloud微服務架構分散式
- SpringCloud微服務系列- 分散式能力建設之配置中心SpringGCCloud微服務分散式
- 註冊中心-consul
- Spring Boot實戰系列(7)整合Consul配置中心Spring Boot
- 【譯】Consul 1.4:多資料中心服務網路
- .Net Core微服務——閘道器(2):ocelot整合consul微服務
- 微服務SpringCloud之Spring Cloud Config配置中心Git微服務SpringGCCloudGit
- 「乾貨分享」用友雲微服務架構下配置檔案管理利器:配置中心微服務架構
- SpringCloud分散式微服務雲架構 第七篇: 高可用的分散式配置中心(Config)SpringGCCloud分散式微服務架構
- Spring Cloud構建微服務架構:分散式配置中心(加密解密)SpringCloud微服務架構分散式加密解密
- springcloud微服務實戰 學習筆記四 分散式配置中心SpringGCCloud微服務筆記分散式
- 微服務下的註冊中心如何選擇微服務