乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Consul 注冊中心介紹

       liang1234_ 2019-12-09

      在 Spring Cloud 體系中,幾乎每個角色都會有兩個以上的產(chǎn)品提供選擇,比如在注冊中心有:Eureka、Consul、zookeeper、etcd 等;網(wǎng)關的產(chǎn)品有 Zuul、Spring Cloud Gateway 等。在注冊中心產(chǎn)品中,最常使用的是 Eureka 和 Consul,兩者各有特點,企業(yè)可以根據(jù)自述項目情況來選擇。

      前面給大家詳細介紹了 Eureka ,本節(jié)給大家介紹 Consul 的使用。

      什么是Consul

      Consul 是 HashiCorp 公司推出的開源產(chǎn)品,用于實現(xiàn)分布式系統(tǒng)的服務發(fā)現(xiàn)、服務隔離、服務配置,這些功能中的每一個都可以根據(jù)需要單獨使用,也可以同時使用所有功能。Consul 官網(wǎng)目前主要推 Consul 在服務網(wǎng)格中的使用。

      與其它分布式服務注冊與發(fā)現(xiàn)的方案相比,Consul 的方案更“一站式”——內(nèi)置了服務注冊與發(fā)現(xiàn)框架、分布一致性協(xié)議實現(xiàn)、健康檢查、Key/Value 存儲、多數(shù)據(jù)中心方案,不再需要依賴其它工具。Consul 本身使用 go 語言開發(fā),具有跨平臺、運行高效等特點,也非常方便和 Docker 配合使用。

      Consul 的主要特點有:
      Service Discovery : 服務注冊與發(fā)現(xiàn),Consul 的客戶端可以做為一個服務注冊到 Consul,也可以通過 Consul 來查找特定的服務提供者,并且根據(jù)提供的信息進行調(diào)用。

      Health Checking: Consul 客戶端會定期發(fā)送一些健康檢查數(shù)據(jù)和服務端進行通訊,判斷客戶端的狀態(tài)、內(nèi)存使用情況是否正常,用來監(jiān)控整個集群的狀態(tài),防止服務轉發(fā)到故障的服務上面。

      KV Store: Consul 還提供了一個容易使用的鍵值存儲。這可以用來保持動態(tài)配置,協(xié)助服務協(xié)調(diào)、建立 Leader 選舉,以及開發(fā)者想構造的其它一些事務。

      Secure Service Communication: Consul 可以為服務生成分布式的 TLS 證書,以建立相互的 TLS 連接。 可以使用 intentions 定義允許哪些服務進行通信。 可以使用 intentions 輕松管理服務隔離,而不是使用復雜的網(wǎng)絡拓撲和靜態(tài)防火墻規(guī)則。

      Multi Datacenter: Consul 支持開箱即用的多數(shù)據(jù)中心,這意味著用戶不需要擔心需要建立額外的抽象層讓業(yè)務擴展到多個區(qū)域。

      Consul 角色
      Server: 服務端, 保存配置信息, 高可用集群, 在局域網(wǎng)內(nèi)與本地客戶端通訊, 通過廣域網(wǎng)與其它數(shù)據(jù)中心通訊。 每個數(shù)據(jù)中心的 Server 數(shù)量推薦為 3 個或是 5 個。

      Client: 客戶端, 無狀態(tài), 將 HTTP 和 DNS 接口請求轉發(fā)給局域網(wǎng)內(nèi)的服務端集群。

      Consul 旨在對 DevOps 社區(qū)和應用程序開發(fā)人員友好,使其成為現(xiàn)代、彈性基礎架構的理想選擇。

      使用Consul 的優(yōu)勢

      使用 Raft 算法來保證一致性, 比復雜的 Paxos 算法更直接。相比較而言, zookeeper 采用的是 Paxos, 而 etcd 使用的則是 Raft。

      支持多數(shù)據(jù)中心,內(nèi)外網(wǎng)的服務采用不同的端口進行監(jiān)聽。多數(shù)據(jù)中心集群可以避免單數(shù)據(jù)中心的單點故障,而其部署則需要考慮網(wǎng)絡延遲, 分片等情況等。 zookeeper 和 etcd 均不提供多數(shù)據(jù)中心功能的支持。

      支持健康檢查。 etcd 不提供此功能。

      支持 http 和 dns 協(xié)議接口。 zookeeper 的集成較為復雜, etcd 只支持 http 協(xié)議。

      官方提供 Web 管理界面, etcd 無此功能。

      Consul 保持了 CAP 中的 CP,保持了強一致性和分區(qū)容錯性。

      Consul 支持 Http\gRPC\DNS 多種訪問方式。

      Consul 的調(diào)用過程

      首先我們根據(jù)一張圖來了解一下 Consul 服務調(diào)用過程:

      在這里插入圖片描述

      1、當 Producer 啟動的時候,會向 Consul 發(fā)送一個 post 請求,告訴 Consul 自己的 IP 和 Port;

      2、Consul 接收到 Producer 的注冊后,每隔 10s(默認)會向 Producer 發(fā)送一個健康檢查的請求,檢驗 Producer 是否健康;

      3、當 Consumer 發(fā)送 GET 方式請求 /api/address 到 Producer 時,會先從 Consul 中拿到一個存儲服務 IP 和 Port 的臨時表,從表中拿到 Producer 的 IP 和 Port 后再發(fā)送 GET 方式請求 /api/address;

      4、該臨時表每隔 10s 會更新,只包含有通過了健康檢查的 Producer。

      Spring Cloud Consul 項目是針對 Consul 的服務治理實現(xiàn)。Consul 是一個分布式高可用的系統(tǒng),它包含多個組件,但是作為一個整體,在微服務架構中,為我們的基礎設施提供服務發(fā)現(xiàn)和服務配置的工具。

      Consul 和 eureka的對比

      我們先來通過一個表格做簡單對比

      Feature Euerka Consul
      服務健康檢查 可配支持 服務狀態(tài),內(nèi)存,硬盤等
      多數(shù)據(jù)中心 支持
      kv 存儲服務 支持
      一致性 raft
      cap ap cp
      使用接口(多語言能力) http(sidecar) 支持 http 和 dns
      watch 支持 支持 long polling/大部分增量 全量/支持long polling
      自身監(jiān)控 metrics metrics
      安全 acl /https
      編程語言 Java go
      Spring Cloud 集成 已支持 已支持

      通過對比可以得知, Consul 功能更強大,Euerka 更容易使用。

      Consul 強一致性?帶來的是:

      服務注冊相比 Eureka 會稍慢一些。因為 Consul 的 raft 協(xié)議要求必須過半數(shù)的節(jié)點都寫入成功才認為注冊成功,。Leader 掛掉時,重新選舉期間整個 Consul 不可用。保證了強一致性但犧牲了可用性。

      Consul 強烈的一致性意味著它可以作為領導選舉和集群協(xié)調(diào)的鎖定服務。

      Eureka 保證高可用(A)和最終一致性:

      服務注冊相對要快,因為不需要等注冊信息 replicate 到其它節(jié)點,也不保證注冊信息是否 replicate 成功。當數(shù)據(jù)出現(xiàn)不一致時,雖然 A, B 上的注冊信息不完全相同,但每個 Eureka 節(jié)點依然能夠正常對外提供服務,這會出現(xiàn)查詢服務信息時如果請求 A 查不到,但請求 B 就能查到。如此保證了可用性但犧牲了一致性。

      安裝Consul

      Consul 不同于 Eureka 是由 go 語言開發(fā)而成,因此需要我們單獨來安裝。

      打開 Consul官網(wǎng)根據(jù)不同的操作系統(tǒng)選擇最新的 Consul 版本,我們這里以 Windows 64 操作系統(tǒng)為例,可以看出 Consul 目前的最新版本為 1.4.4

      在這里插入圖片描述
      下載下來是一個 consul_1.4.4_windows_amd64.zip 的壓縮包,解壓是一個 consul.exe 的執(zhí)行文件。

      在這里插入圖片描述

      cd 到對應的目錄下,使用 cmd 啟動 Consul:

      cd D:\Common Files\consul
      #cmd啟動: consul agent -dev # -dev表示開發(fā)模式運行,另外還有-server表示服務模式運行

      為了方便啟動,可以在同級目錄下創(chuàng)建一個 run.bat 腳本來啟動,腳本內(nèi)容如下:

      consul agent -dev pause

      下次啟動的時候直接雙擊 run.bat 文件即可;當然也可以把 consul 的 exe 文件路徑加入到本機的 path 路徑下,這樣后期只需要在 cmd 命令行下運行

      執(zhí)行命令后,命令行會輸出如下信息:

      在這里插入圖片描述

      啟動成功之后訪問:localhost:8500,就可以看到Consul的管理界面

      在這里插入圖片描述

      Consul 的 Web 管理界面有一些菜單,我們這里做一下簡單的介紹:

      Services,管理界面的默認頁面,用來展示注冊到 Consul 的服務,啟動后默認會有一個 consul 服務,也就是它本身。

      Nodes,在 Services 界面雙擊服務名就會來到 Services 對于的 Nodes 界面,Services 是按照服務的抽象來展示的,Nodes 展示的是此服務的具體節(jié)點信息。比如啟動了兩個訂單服務實例,Services 界面會出現(xiàn)一個訂單服務,Nodes 界面會展示兩個訂單服務的節(jié)點。

      Key/Value ,如果有用到 Key/Value 存儲,可以在界面進行配置、查詢。

      ACL,全稱 Access Control List,為訪問控制列表的展示信息。

      Intentions,可以在頁面配置請求權限。

      當我們看到這個頁面后,也就意味著 Consul 已經(jīng)安裝成功了。

      總結

      本節(jié)為大家介紹了注冊中心的另外一個產(chǎn)品:Consul。介紹了 Consul 的特點、優(yōu)勢,以及和 Eureka 對比有什么不同的特性,最后為大家展示了如何在 Windows 下安裝一個 Consul 服務。下節(jié)為大家介紹 Consul 的架構原理和實踐。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多