談ESB服務(wù)總線改進(jìn)
對(duì)于消息中間件部分進(jìn)行單獨(dú)剝離,即講服務(wù)設(shè)計(jì)和ESB協(xié)議轉(zhuǎn)換和適配部分同消息中間件分離,對(duì)于消息中間件部分初步考慮采用RabbitMQ或zeroMQ來(lái)實(shí)現(xiàn),其中zeroMQ由于用c語(yǔ)言實(shí)現(xiàn),相當(dāng)來(lái)說(shuō)更加輕量和高性能。但是RabbitMQ本身更適合做一個(gè)企業(yè)級(jí)的消息系統(tǒng),其在集群,持久化,高可用性和分布式可擴(kuò)展性方面往往更加有優(yōu)勢(shì)。相當(dāng)來(lái)說(shuō)RabbitMQ往往是更好的選擇。
本文引用地址:http://m.butianyuan.cn/article/201612/330512.htm對(duì)于消息中間件的使用,主要需要實(shí)現(xiàn)幾個(gè)方面的內(nèi)容,一個(gè)是傳統(tǒng)MQ的基本功能,即基于消息的異步通訊機(jī)制,其次是實(shí)現(xiàn)消息發(fā)布訂閱模式,最后是一個(gè)重要功能,即用做ESB內(nèi)部的消息存儲(chǔ)和異步日志記錄,通過(guò)MQ的異步功能對(duì)于日志進(jìn)行異步持久化以實(shí)現(xiàn)ESB層本身的高性能,而不會(huì)影響到服務(wù)本身調(diào)用性能。
對(duì)于數(shù)據(jù)庫(kù)可以看到,主要是包括兩個(gè)方面的內(nèi)容,其一是對(duì)于服務(wù)元數(shù)據(jù)管理部分的內(nèi)容,其二是對(duì)于服務(wù)運(yùn)行實(shí)例的持久化內(nèi)容。其中可以看到對(duì)于服務(wù)運(yùn)行實(shí)例完全可以采用獨(dú)立的分布式數(shù)據(jù)庫(kù)來(lái)存儲(chǔ),由于這種實(shí)例運(yùn)行記錄本身就類似key-value的存儲(chǔ)模式,因此可以考慮采用mongoDB或redis庫(kù)來(lái)實(shí)現(xiàn)這部分?jǐn)?shù)據(jù)的存儲(chǔ),個(gè)人對(duì)于這塊傾向于選擇redis庫(kù)來(lái)實(shí)現(xiàn)即可。
對(duì)于服務(wù)總線的管控和治理平臺(tái)建議是和ESB服務(wù)總線進(jìn)行分離,管控平臺(tái)部分的核心功能主要還是服務(wù)元數(shù)據(jù)管理,服務(wù)目錄庫(kù),服務(wù)運(yùn)行監(jiān)控分析,服務(wù)安全和訪問(wèn)控制,服務(wù)全生命周期管理等基礎(chǔ)內(nèi)容。管控平臺(tái)數(shù)據(jù)庫(kù)可以用結(jié)構(gòu)化的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)本身不會(huì)有太大的性能瓶頸。
對(duì)于服務(wù)設(shè)計(jì)部份可以引入可視化的服務(wù)設(shè)計(jì)和服務(wù)組合,其中核心主要是實(shí)現(xiàn)適配器,數(shù)據(jù)映射轉(zhuǎn)換,日志和異常管理,安全管理,外部接口調(diào)用,路由,消息發(fā)布訂閱等基礎(chǔ)設(shè)計(jì)能力。對(duì)于適配器是一個(gè)核心基礎(chǔ)功能組件,主要需要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù),SOAP和rest WebService的接入,HTTP服務(wù)的接入,JMS消息的適配,F(xiàn)TP文件的適配等基礎(chǔ)功能。同時(shí)在適配處理過(guò)程中實(shí)現(xiàn)大數(shù)據(jù)和大文件傳送組件的集成。
進(jìn)一步加強(qiáng)服務(wù)監(jiān)控和預(yù)警功能,包括對(duì)詳細(xì)SLA服務(wù)等級(jí)和策略的訂閱,對(duì)預(yù)警策略的定義,能夠?qū)崿F(xiàn)準(zhǔn)實(shí)時(shí)的服務(wù)監(jiān)控和預(yù)警。同時(shí)在服務(wù)視圖靜態(tài)展現(xiàn)上增加服務(wù)預(yù)警和調(diào)用異常的動(dòng)態(tài)實(shí)時(shí)展示,以幫助管理員更加實(shí)時(shí)的發(fā)現(xiàn)服務(wù)運(yùn)行中的異常。同時(shí)增加對(duì)ESB服務(wù)總線集群的管理功能,其中包括對(duì)集群各個(gè)節(jié)點(diǎn)的監(jiān)控,對(duì)服務(wù)部署實(shí)現(xiàn)集群化的動(dòng)態(tài)部署,包括服務(wù)的熱部署能力支持。以提升ESB平臺(tái)本身的高可用性和可伸縮性。
可以參考Dubbo服務(wù)框架的實(shí)現(xiàn)模式,在服務(wù)目錄庫(kù)中引入兩種服務(wù)接入方式,即一種是由ESB來(lái)實(shí)現(xiàn)服務(wù)代理,同時(shí)實(shí)現(xiàn)服務(wù)數(shù)據(jù)傳輸映射和運(yùn)行日志審計(jì);對(duì)于其它大數(shù)據(jù)調(diào)用服務(wù)為了提升技能,則服務(wù)目錄中心僅僅是返回可使用的服務(wù)調(diào)用地址,由服務(wù)消費(fèi)方和提供方進(jìn)行直接的消息傳輸通訊。通過(guò)兩種方式的結(jié)合可以更好的兼顧ESB總線的常規(guī)能力同時(shí)又提升服務(wù)總線的性能。
可以考慮通過(guò)本地SDK開(kāi)發(fā)包的引入,進(jìn)一步來(lái)簡(jiǎn)化服務(wù)提供和消費(fèi)端的代碼開(kāi)發(fā),該模式下雖然整個(gè)服務(wù)開(kāi)發(fā)和消費(fèi)過(guò)程更加簡(jiǎn)單,但是本身對(duì)業(yè)務(wù)系統(tǒng)有一定的侵入性,因此也需要慎重采用。
進(jìn)一步加強(qiáng)對(duì)服務(wù)流量控制功能的設(shè)計(jì)和開(kāi)發(fā),即根據(jù)SLA服務(wù)策略可以更加詳細(xì)的定義服務(wù)流量控制策略,包括服務(wù)在單位時(shí)間的調(diào)用次數(shù),服務(wù)傳送的數(shù)據(jù)量,同時(shí)也包括對(duì)于任何一次調(diào)用服務(wù)本身的數(shù)據(jù)量控制和預(yù)警等,通過(guò)服務(wù)流量控制一方面是減輕下游接收系統(tǒng)的系統(tǒng)壓力,一方面也可以更好的屏蔽和發(fā)現(xiàn)各種非法調(diào)用。
可以考慮進(jìn)一步加強(qiáng)對(duì)服務(wù)運(yùn)行日志記錄的分析,通過(guò)服務(wù)運(yùn)行數(shù)據(jù)的采集和轉(zhuǎn)換,結(jié)合前期總體的業(yè)務(wù)系統(tǒng)集成架構(gòu)藍(lán)圖規(guī)劃。可以通過(guò)服務(wù)消費(fèi)記錄更好的歡迎業(yè)務(wù)系統(tǒng)間業(yè)務(wù)系統(tǒng)的情況,這個(gè)一方面可以利用來(lái)實(shí)現(xiàn)業(yè)務(wù)單據(jù)的跨系統(tǒng)傳遞監(jiān)控,同時(shí)也可以更好的用來(lái)實(shí)現(xiàn)后續(xù)規(guī)劃的端到端流程監(jiān)控上。
評(píng)論