異步消息有兩個主要的概念:消息代理(message broker)和目的地(destination)。當一個應用發(fā)送消息時,會將消息交給一個消息代理朱灿。消息代理可以確保消息被投遞到指定的目的地报账,同時解放發(fā)送者,使其能夠繼續(xù)進行其他的業(yè)務挽荡。
消息系統(tǒng)會提供不同的消息路由模式,通用的兩種目的地:隊列(queue)和主題(topic)即供。每種類型都與特定的消息模型相關聯(lián)定拟,分別是點對點模型(隊列)和發(fā)布/訂閱模型(主題)。
點對點消息模型:每一條消息都有一個發(fā)送者和一個接收者。雖然隊列可以有多個接收者青自,但每條消息只能被一個接收者取走株依。
發(fā)布—訂閱消息模型:消息可以被所有監(jiān)聽一個主題的接收者收到。
同步同學機制訪問遠程服務的客戶端存在幾個限制:
同步通信意味著等待延窜。當客戶端調用遠程服務的方法時恋腕,它必須等待遠程方法結束才能繼續(xù)執(zhí)行。如果客戶端與遠程服務頻繁通信逆瑞,或者遠程服務響應很慢荠藤,就會對客戶端應用的性能帶來負面影響。
客戶端通過服務接口與遠程服務相耦合获高。如果服務的接口發(fā)生變化哈肖,此服務的所有客戶端都需要做相應的改變。
客戶端與遠程服務的位置耦合念秧∮倬客戶端必須配置服務的網(wǎng)絡位置,這樣它才知道如何與遠程服務進行交互摊趾。如果網(wǎng)絡拓撲進行調整币狠,客戶端也需要重新配置新的網(wǎng)絡位置。
客戶端與服務的可用性相耦合砾层。如果遠程服務不可用漩绵,客戶端實際上也無法正常運行。