服務發現與註冊

2022-03-26 03:51:31 字數 886 閱讀 3016

提供restful api或者其他的api的服務。為了完成一次請求,服務呼叫方需要知道服務例項的ip和埠。平台中的應用一般有多個例項,例項故障重啟和負載均衡都與服務發現有關。

通過服務發現機制,可以透明的對多個例項進行訪問,並實現負載均衡。且應用的某個例項隨時可能故障,這時就需要動態配置服務呼叫方的路由資訊,服務發現可以解決這個動態配置問題。

自註冊:服務例項自己負責在服務登錄檔中註冊和登出。服務例項向註冊中心發心跳包來保證註冊資訊不超時。(服務例項和服務註冊中心耦合,需要在服務例項中實現註冊**)

第三方註冊:服務例項不直接和註冊中心進行互動,服務註冊器負責向註冊中心註冊和登出此服務,並對服務進行健康檢查。服務例項通過乙個專有服務以中心化方式進行管理,服務註冊中心

**agent執行在集群的每乙個節點上,每個agent擁有分布式的健康檢查機制。

有兩種主要的服務發現模式,客戶端發現模式和服務端發現模式。

在github的安裝release版本,

curl -l  -o /tmp/etcd-v3.2.6-darwin-amd64.zip

cd /tmp/etcd-v3.2.6-darwin-amd64.zip

unzip etcd-v3.2.6-darwin-amd64.zip

也可以mv到其他的目錄。目錄下./etcd啟動etcd服務端。伺服器監聽2379和4001埠。

./etcdctl set name wyc./etcdctl get name返回設定的值。

也可以通過curl -l http://localhost:2379/v2/keys/name檢視:

}

服務註冊與發現

在分布式系統中,各個子系統都是多個例項存在,這個時候必須要引入乙個服務協調器,用於給呼叫方提供可用的呼叫提供者的命名訊息。服務協調器,如zookeeper,etcd,eureka 他們必須要有的特性 本身高可用,由多個服務節點構成,就算有些節點掛掉也不影響正常執行,避免了單點故障。本身是乙個分布式,...

服務註冊與發現

背景 使用服務的客戶端可以採取客戶端發現 client side discovery 和服務端發現 server side discovery 兩種方式進行服務的發現,那麼我們如何做到這些呢?考慮因素 乙個服務的每個例項公開乙個遠端介面如http rest thrift等。解決方案 實現服務註冊,服...

服務註冊與服務發現

應用場景 多台伺服器提供同乙個服務 是儲存服務名稱與ip和埠對應關係的伺服器 服務只會註冊ip,埠這些資訊,至於服務提供什麼介面,consul不管,需要消費者知道這些細節.安裝執行 consul agent dev 監控頁面 新建2個專案,分別提供兩個服務 給專案隨便新建乙個控制器提供健康檢查使用 ...