Consul
一、Consul簡介
Consul 是一套開源的分布式服務發現和配置管理系統,由 HashiCorp 公司用 Go 語言開發。
提供了微服務系統中的服務治理、配置中心、控制總線等功能。這些功能中的每一個都可以根據需要單獨使用,也可以一起使用以建構全方位的服務網格,總之Consul提供了一種完整的服務網格解決方案。
它具有很多優點。包括: 基于 raft 協定,比較簡潔; 支援健康檢查, 同時支援 HTTP 和 DNS 協定 支援跨資料中心的 WAN 叢集 提供圖形界面 跨平台,支援 Linux、Mac、Windows
提供服務:
- 服務發現:提供HTTP和DNS兩種發現方式
- 健康監測 :支援多種方式,HTTP、TCP、Docker、Shell腳本定制化監控
- KV存儲:Key、Value的存儲方式
- 多資料中心:Consul支援多資料中心
- 可視化WEB界面
二、安裝Consul
- 下載下傳位址:https://www.consul.io/downloads.html
- 解壓後目錄下有一個consul.exe,使用windows terminal進入解壓目錄
SpringCloud 學習筆記之Consul - 鍵入
可檢視consul版本consul --version
SpringCloud 學習筆記之Consul - 鍵入
使用開發者模式啟動consul,我的已經啟動是以如下,未啟動的将會看到consul agent running!提示啟動成功consul agent -dev
SpringCloud 學習筆記之Consul - 浏覽器通路localhost:8500 (consul 預設端口為8500),效果如下:
三、SpringCloud整合consul服務注冊
與SpringCloud整合ZooKeeper相似,故不再過多闡述
1、搭建步驟
- 建立model
- 修改pom.xml
SpringCloud 學習筆記之Consul - 編寫application.yml
SpringCloud 學習筆記之Consul - 添加主啟動類 添加@SpringBootApplication、@EnableDiscoveryClient注解
- 配置Bean 注入RestTemplate 添加@LoadBalanced用戶端負載均衡
- 編寫Controller
四、總結Eureka、Zookeeper和Consul
1、CAP理論:
CAP原則又稱CAP定理,指的是在一個分布式系統中,一緻性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多隻能同時實作兩點,不可能三者兼顧。
- CA - 單點叢集,滿足一緻性,可用性的系統,通常在可擴充性上不太強大。
- CP - 滿足一緻性,分區容忍必的系統,通常性能不是特别高。 例如:Zookeeper、Consul
- AP - 滿足可用性,分區容忍性的系統,通常可能對一緻性要求低一些。 例如:Eureka