(微服務)服務網關選型與使用

語言: CN / TW / HK

1.服務網關比較

2. consul 介紹

  • 介紹地址:https://www.consul.io/
  • Consul是HashiCorp公司推出的開源工具,Consul由Go語言開發,部署起來非常容易,只需要極少的可執行程序和配置文件,具有綠色、輕量級的特點。Consul是分佈式的、高可用的、 可橫向擴展的用於實現分佈式系統的服務發現與配置。
  • 具有哪些特點?
  • 服務發現(Service Discovery):Consul提供了通過DNS或者HTTP接口的方式來註冊服務和發現服務。一些外部的服務通過Consul很容易的找到它所依賴的服務。
  • 健康檢查(Health Checking):Consul的Client可以提供任意數量的健康檢查,既可以與給定的服務相關聯(“webserver是否返回200 OK”),也可以與本地節點相關聯(“內存利用率是否低於90%”)。操作員可以使用這些信息來監視集羣的健康狀況,服務發現組件可以使用這些信息將流量從不健康的主機路由出去。
  • Key/Value存儲:應用程序可以根據自己的需要使用Consul提供的Key/Value存儲。 Consul提供了簡單易用的HTTP接口,結合其他工具可以實現動態配置、功能標記、領袖選舉等等功能。
  • 安全服務通信:Consul可以為服務生成和分發TLS證書,以建立相互的TLS連接。意圖可用於定義允許哪些服務通信。服務分割可以很容易地進行管理,其目的是可以實時更改的,而不是使用複雜的網絡拓撲和靜態防火牆規則。
  • 多數據中心:Consul支持開箱即用的多數據中心. 這意味着用户不需要擔心需要建立額外的抽象層讓業務擴展到多個區域。

3. consul 運行模式

完成consul的安裝後,必須運行agent. agent可以運行為 server 或者 client模式。還有個開發模式dev。

3.1 開發模式dev

  1. ./consul agent -dev
  2. 説明: -dev 表示開發模式運行,默認客户端地址是在127.0.0.1 上
  3. -dev(該節點的啟動不能用於生產環境,因為該模式下不會持久化任何狀態
  4. 該啟動模式僅僅是為了快速便捷的啟動單節點consul

3.2 Server模式

  1. consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=s1 -bind=10.201.102.198 -ui-dir ./consul_ui/ -rejoin -config-dir=/etc/consul.d/ -client 0.0.0.0
  2. 其實沒有 -server,默認就是以client模式啟動的

3.3 Client 模式

consul agent -data-dir /tmp/consul -node=c1 -bind=10.201.102.248 -config-dir=/etc/consul.d/ -join 10.201.102.198

運行cosnul agent以client模式,-join加入到已有的集羣中去。

4.運行

http://localhost:8500