天天看點

SpringCloud 學習筆記之Consul

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

  1. 下載下傳位址:https://www.consul.io/downloads.html
  2. 解壓後目錄下有一個consul.exe,使用windows terminal進入解壓目錄
    SpringCloud 學習筆記之Consul
  3. 鍵入

    consul --version

    可檢視consul版本
    SpringCloud 學習筆記之Consul
  4. 鍵入

    consul agent -dev

    使用開發者模式啟動consul,我的已經啟動是以如下,未啟動的将會看到consul agent running!提示啟動成功
    SpringCloud 學習筆記之Consul
  5. 浏覽器通路localhost:8500 (consul 預設端口為8500),效果如下:
SpringCloud 學習筆記之Consul

三、SpringCloud整合consul服務注冊

與SpringCloud整合ZooKeeper相似,故不再過多闡述

1、搭建步驟
  1. 建立model
  2. 修改pom.xml
    SpringCloud 學習筆記之Consul
  3. 編寫application.yml
    SpringCloud 學習筆記之Consul
  4. 添加主啟動類 添加@SpringBootApplication、@EnableDiscoveryClient注解
  5. 配置Bean 注入RestTemplate 添加@LoadBalanced用戶端負載均衡
  6. 編寫Controller

四、總結Eureka、Zookeeper和Consul

1、CAP理論:

CAP原則又稱CAP定理,指的是在一個分布式系統中,一緻性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多隻能同時實作兩點,不可能三者兼顧。

  • CA - 單點叢集,滿足一緻性,可用性的系統,通常在可擴充性上不太強大。
  • CP - 滿足一緻性,分區容忍必的系統,通常性能不是特别高。 例如:Zookeeper、Consul
  • AP - 滿足可用性,分區容忍性的系統,通常可能對一緻性要求低一些。 例如:Eureka

繼續閱讀