說到訂閱服務通訊一般都會想到基於佇列的訊息生產和消費模式,這也是在實際應該中比較常用的方式。一般生產者把訊息傳送到佇列服務中心,然後消費者去中心訂閱;然而這種方式需要乙個訊息服務中心,而在這裡所說的訂閱服務通訊則有點不一樣,因為需要更靈活的訂閱方式,所以需要去除中心化處理;但去除中心化那則需要考慮的事情想對複雜,最基礎的環節就是如何維護生產者和消費者的關係,接下來講解如何實現這種方式。
由於在應用中一般會使用佇列服務作為訊息中心,所以生產者和消費並沒有直接的關係,乙個把訊息投遞到中心,乙個從中心中獲取。
去除中心化其實就是生產和消費並不依賴於中心服務,每個生產和消費自身就是乙個中心服務,簡單地說也不存在生產和消費劃分;每個服務充當生產的同時也是消費者。
去除中心後服務之間都可以構建訂閱體系,即其中乙個服務故障也不會影響其他訂閱服務,這樣在可靠性和靈活性上對於中心化服務都有著很大的優勢;但有乙個很明顯的問題就是沒有中心服務,服務之間是如何發現對方呢,這的確是乙個麻煩的事情。
對於不同服務通訊需要做的事情是發現對方,一般的服務程式都有固定的地方(網域名稱)和埠來告訴使用者,你可以通過這個地方connect進來。既然需要去除中心化那自然就不會知道現在有什麼服務,所以需要制定一套服務自我發現機制來確保服務間可以自動發現。
服務和服務之間已經握手了,那消費註冊就會變得比較簡單,因為消費者隨便一台服務上註冊都可以同步到同一集群中的所有服務上。
如果消費者在多個服務註冊,那整體的通訊結構如下
Web服務的體系架構
web簡介 web是www world wide web 的簡稱,又稱為全球資訊網,是建立在客戶機 伺服器上的,以html語言和html協議為基礎,提供面向internet服務的,有一致使用者介面的一種資訊服務系統。web service簡介 其實就是乙個應用程式,它向外界暴露出乙個能夠通過web進...
Web服務的體系架構
web簡介 web是www world wide web 的簡稱,又稱為全球資訊網,是建立在客戶機 伺服器上的,以html語言和html協議為基礎,提供面向internet服務的,有一致使用者介面的一種資訊服務系統。web service簡介 其實就是乙個應用程式,它向外界暴露出乙個能夠通過web進...
基於SOA的體系架構設計
我們當然可以及時地更新這些資料,然而這會給管理員帶來工作上的負擔。考慮全球時區不同的情況,有可能每個酒店的管理員都需要24小時的值守。soa可以使得這些問題迎刃而解。雖然我們很難要求全球的酒店系統都遵循統一的酒店介面標準,但鑑於酒店的行業特徵,定義統一的服務契約 service contract 是...