在SOA架構中,JMS協議中的“點對點”消息方式,已經能夠很好的支持1對1系統之間的通訊;
但是,類似事件消息的通知(應用產生一個事件消息,其他多個系統做相應處理),理論上JMS協議中的“訂閱”方式,能夠支持此類場景,不過協議說:在消息產生通知訂閱者的時候,如果某個訂閱者系統不在線,則消息丟失--此訂閱者接受不到消息。
并且,始終抱著對客戶端簡單,友好的態度,我希望client(應用)本身只要發出事件消息,并不需要去關注消息通知哪些訂閱者,而這一切,應該由“事件消息通知系統”,代為完成。
經過昨天晚上空閑時間的思考,大概設計了“事件消息通知系統”的概念模型。(此概念模型,基于IP,路由,DNS思考得來)
詳見下圖:
概念解釋:
1)Application:業務應用,一旦有事件消息產生,不再關注需要發送到哪些目的地,只需要統一發送到Event Message Center;
2)Event Message Center:一切事件消息的暫存地;
3)Event Message Router:事件消息路由器,根據Event Message Configuration Center(事件消息配置中心,即事件消息路由配置中心),將不同的消息,路由分發到不同的訂閱者目的地;
4)Event Message Configuration Center:事件消息配置中心,即事件消息路由配置中心;
5)Event Message Registrar:事件消息登記中心,通過GUI界面,將Event Message Configuration Center中的路由信息展現給用戶,并且允許用戶進行事件消息路由信息的配置;
6)Event Message Subscription:事件消息訂閱中心,同一類事件消息的暫存地;
7)Event Message Subscription Distributer:事件消息訂閱分發者,根據Event Message Subscription Configuration Center(事件消息訂閱配置中心)的配置信息,講事件消息分發到不同的訂閱者目的地;
8)Event Message Subscription Configuration Center:事件消息訂閱配置中心,即事件消息訂閱分發路由信息配置;
9)Event Message Subscription Registrar:事件消息訂閱登記中心,通過GUI界面,將 Event Message Subscription Configuration Center中的分發路由信息展現給用戶,并且允許用戶進行事件消息訂閱路由信息的配置;
10)Event Message Destination:事件消息目的地;
11)Event Message Consumer:不同訂閱者的消費端
寫下此隨筆,僅僅把把自己對“事件消息系統”的感觀認識記錄。
由于思考和整理時間很短,此概念模型存在很多缺陷之處,還望大家多多指點。