SOA研究-用zookeeper實現服務的註冊和發現
註冊中心
一般具有以下功能:
註冊服務
訂閱服務
失敗重新註冊和訂閱
本地快取服務資訊列表
大體過程如下:
1.服務提供者暴露服務後向註冊中心註冊,如果多個註冊中心的話,需要分別註冊到多個註冊中心;註冊資訊包含自己主機名,埠號,服務名,其他額外引數等。本地一般用map快取已經註冊的服務,當然也可以用檔案儲存到本地,當網路抖動等原因重新恢復連線Zookeeper的時候,需要從快取取出來重新註冊。
2.服務消費者引用服務提供者的時候要向zookeeper發出訂閱請求,訂閱服務提供者。服務消費者一般會快取服務提供者訊息,這樣每次發起RPC請求的時候就不用連線zookeeper,增加效能。當服務提供者發出變動的時候,能做出相應調整,更新本地快取。
實現例子
首先需要有註冊中心介面,負責註冊訂閱以及查詢
public interface Registry {
void register(URL url) throws Exception;
void subscribe(URL url, NotifyListener listener) throws Exception;
List<URL> lookup(URL url) throws Exception;
}
目錄服務,負責查詢本地快取的服務提供者資訊
public interface Directory<T> {
List<Invoker<T>> list(Invocation invocation);
}
註冊節點監聽器,負責註冊中心有變動時候做出響應
public interface StateListener {
void onChanged(StateEvent stateEvent) throws Exception;
}
zookeeper狀態監聽器,負責zookeeper重連時候自動恢復註冊和訂閱
public interface StateListener {
void onChanged(StateEvent stateEvent) throws Exception;
}
zookeeper客戶端
public interface ZkClient {
void create(URL url) throws Exception;
List<String> getChildNode(String path) throws Exception;
List<String> addNodeListener(final URL url, final ChildListener listener) throws Exception;
void addStateListener(StateListener stateListener);
}
原始碼
相關推薦
SOA研究-用zookeeper實現服務的註冊和發現
註冊中心 一般具有以下功能: 註冊服務 訂閱服務 失敗重新註冊和訂閱 本地快取服務資訊列表 大體過程如下: 1.服務提供者暴露服務後向註冊中心註冊,如果多個註冊中心的話,需要分別註冊到多個註冊中心;註冊資訊包含自己主機名,埠號,服務名,其他
Spring Cloud Consul 實現服務註冊和發現
Spring Cloud 是一個基於 Spring Boot 實現的雲應用開發工具,它為基於 JVM 的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。通過 Spring Boot 風格進行再封裝遮蔽掉了
【Java】用etcd做服務註冊和發現
最近嘗試了一下etcd來做服務的註冊發現 【etcd服務】 從etcd官網下載二進位制檔案即可,分配了三臺機器做叢集 10.0.1.98 etcd-001 10.0.1.205 etcd-002 10.0.1.182 etcd-003 然後用指令碼啟動服務
zookeeper實現系統註冊和系統發現
需求:多系統整合,需要登陸任意系統後都可以顯示業務系統名稱,並得到對應地址資訊等。 實現思路:使用zookeeper作為系統註冊,每個系統啟動的時候進行註冊系統資訊,臨時有序為註冊型別,並且註冊事件監聽,並獲取所 有子節點的系統資訊,新增
Spring Boot + Spring Cloud 實現許可權管理系統 後端篇(十八):服務註冊和發現(Consul)
什麼是 Consul Consul 是 HashiCorp 公司推出的開源工具,用於實現分散式系統的服務發現與配置。與其它分散式服務註冊與發現的方案,Consul 的方案更“一站式”,內建了服務註冊與發現框架、分佈一致性協議實現、健康檢查、Key/Value 儲存、多資料中心方案,不再需要依賴其它工具(比如
zookeeper與grpc整合實現服務註冊與發現
Zookeeper介紹 ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式
微服務學習筆記(2)——使用Consul 實現 MagicOnion(GRpc) 服務註冊和發現
我會 names uid red mes tar art ret public 原文:微服務學習筆記(2)——使用Consul 實現 MagicOnion(GRpc) 服務註冊和發現1.下載打開Consul 筆者是windows下面開發的(也可以使用Docker)。 官
基於Zookeeper服務註冊和發現
1、專案的目錄結構 2、基於zk服務註冊和發現的架構圖 3、服務端(像zk提供服務的訪問地址) package cn.zk.distribute; import org.apache.zookeeper.CreateMode; import org.ap
用Socket實現服務端和客戶端,進行一對一順序對話
一、服務端程式碼 import java.net.ServerSocket; import java.net.Socket; import java.io.IOException; import java.io.InputStream; import ja
Zookeeper實現服務註冊/發現
what that? Zookeeper在分散式開發中使用頻繁,但許多框架都對其進行了封裝,初學者可能無法較好的理解其工作原理,該文章演示了使用Zookeeper實現服務註冊,服務發現的簡單demo,希望能達到拋磚引玉的效果; why need RegisterCenter? 之所以需要訪問註冊和服務
springcloud服務註冊和發現
微服務架構中,服務發現元件是一個非常關鍵的元件,服務消費者、服務提供者、服務發現元件的關係大致如下: 各個微服務啟動時,將自己的網路地址等資訊註冊到服務發現元件中,服務發現元件會儲存這些資訊 服務消費者可從服務發現元件查詢服務提供者的網路地址,並使用改地址呼叫服務提供者的介面 各個微服務與服務
使用 Eureka 實現服務註冊與發現
Eureka 是 Netflix 出品的用於實現服務註冊和發現的工具。 Spring Cloud 集成了 Eureka,並提供了開箱即用的支援。其中, Eureka 又可細分為 Eureka Server 和 Eureka Client。 本例子將演示如何通過 Spring Clou
服務註冊和發現Eureka《五》
eureka 是一個微服務註冊和發現的元件。分為eureka server 和 eureka client 。eureka server 為eureka 服務註冊中心,eureka client 為eureka 客戶端。 eureka 是spring cloud 首推的服務註冊和發現元件,與
Web Api 基於Zookeeper的服務註冊與發現
差異 基於Nginx的服務提供和消費 基於zookeeper的服務註冊和發現 zk的負載均衡是可以調控,nginx只是能調權重,其他需要可控的都需要自己寫外掛;但是nginx的吞吐量比zk大很多,可以根據業務選擇用哪種方式。 服務端註冊 1.建立WEB A
.NET Core微服務之基於Steeltoe使用Eureka實現服務註冊與發現
一、關於Steeltoe與Spring Cloud Steeltoe is an open source project that enables .NET developers to implement industry standard best practices when b
第二篇:SpringCloud 構建微服務系統之服務註冊和發現(nacos)
上一篇我們學習了一下consul在soringcloud中的使用。今天要給大家介紹的阿里巴巴中介軟體團隊出品的Nacos來作為新一代的服務管理中介軟體。 首先學習Nacos之前,我們應該看看Nacos的官網,對它有一個初步的認識。 1. Nacos 官網 (https://nacos
第一篇:SpringCloud 構建微服務系統之服務註冊和發現(consul)
今天我們要學習的是consul在soringcloud中的使用。首先學習consul之前,我們應該看看consul的官網,對它有一個初步的認識。 1. consul 官網 (https://www.consul.io) 2. consul 簡介 consul是googl
Java後端愛上SpringCloud 第一節:服務註冊和發現 Eureka
Java後端愛上SpringCloud 第一節:服務註冊和發現 Eureka 一些連結 構建服務註冊中心EurekaServer 構建服務提供者EurekaClient 整合SpringBoot做視覺化監控 PS:還是老規矩,一些概念的東
spring-cloud微服務之路(三):服務註冊和發現之Eureka、Consul
在上一篇spring-cloud微服務之路(二):Spring Boot 我們介紹瞭如何快速的使用 Spring Boot 搭建一個微服務專案,這一篇我們演示如何分別使用 Spring Cloud Eureka 和 Spring Cloud Consul 完成
Spring Cloud 服務註冊和發現
Spring Cloud 服務註冊和發現 個人部落格 搭建服務註冊中心 匯入maven依賴 <parent> <groupId>org.springframework.boot</groupId> <artifactId&