基于接收表的ESB研究與設計
1.3 事務處理
接收表在進行消息傳遞時,應使用事務性通道,把消息放置到輸出通道中屬于同一個事務的一部分。
為了保證事務,接收表路由器在發送消息m到服務單元后,服務單元應向接收表路由器發送ack消息。當接收表接收到所有應接收到消息m的服務單元返回的ack消息后,接收表路由器向服務單元發送commit消息,服務單元接收到commit消息后,才真正接收消息m。這樣就保證所有消息要么全部發送,要么都不發送,從而避免了有的服務單元得到消息而有的服務單元沒有得到消息的情況的發生,保證了整個系統的一致性。
1. 4 服務單元失效處理策略
以在應用ESB集成的系統環境中,服務單元可能會發生故障。為提高系統的可用性,采用以下服務單元失效處理策略。
每個服務單元定時向ESB的接受表路由器發送消息available告知服務處于活動狀態。每個服務單元保存ESB所集成的所有服務單元的信息表。該列表同時記錄最后一次收到各個節點available消息的時間。
當ESB的接受表路由器長時間收不到服務單元Ⅳ的available消息,則認為服務單元Ⅳ失效,接受表路由器刪除本地全局路由表中有關該服務單元的路由信息及其規則庫。本文引用地址:http://www.104case.com/article/202595.htm
2 接收表的工作效率
與ESB集成的服務單元中,如果只有較少數量的服務單元接收消息,則基于內容的路由算法,有一定的速度優勢,但當有大多數服務單元接收消息的情況下,由于接收表同時向多個服務單元發送消息,則接收表路由算法的效率會更高。
在基于內容的路由算法中,消息傳遞到服務單元的期望時間與接收此消息的服務單元的數理呈現線性增長(t=kn,t為從發送消息到所有消息都被服務單元接收所用的時間,n為服務單元的個數,k為系數)的關系。而應用接收表的算法中,消息傳遞到服務單元的期望時間與接收此消息的服務單元的數理呈現近似二次曲線(t2=kn)的關系。兩種路由算法的效率比較情況,如圖3所示。
3 結束語
文中研究并設計了基于接收表的ESB路由算法,并對路由算法的效率、動態化、事務處理和失效處理等關鍵問題進行了分析。基于接收表的路由算法提高了消息交互的效率,并且保證了消息的安全性和實時性,是利用ESB進行系統集成的解決方案之一。
評論