999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源消息中間件復雜并發連接控制的研究與實現

2016-02-07 06:06:13呂德奎崔艷軍
網絡安全技術與應用 2016年12期
關鍵詞:規則方法系統

◆呂德奎 崔艷軍

(中國電子科技集團公司第二十八研究所 江蘇 210007)

開源消息中間件復雜并發連接控制的研究與實現

◆呂德奎 崔艷軍

(中國電子科技集團公司第二十八研究所 江蘇 210007)

消息中間件(Message-Oriented Middleware)是解決異構分布式系統中通信與排隊的中間件技術,ActiveMQ是一款基于Java語言的JMS規范的技術實現,是一款企業級常用的JMS產品。本文研究了當前ActiveMQ在涉及多廠家、跨平臺應用時,由于客戶端連接技術不統一、連接不規范、連接后不釋放、數據格式發送不符合規范等因素,碰到的ActiveMQ服務中心因阻塞而宕掉的問題基礎上,分析了當前幾種常用解決手段;依據JMX底層規范與實現,設計并實現了一種基于JMX的客戶端連接問題的解決方法與處理規范、提高ActiveMQ服務中心的運行穩定性。經過大量的實際應用,在數百家客戶端并發連接時、消息量達5千/秒以下時能夠保證ActiveMQ服務中心長期有效的運行,從而提高了企業應用的基礎數據的連續性與穩定性。

ActiveMQ;消息總線;JMX;JMS;并發連接優化

0 引言

隨著信息網絡的迅速發展,越來越多的公司、單位、組織建立了各種應用系統和資源系統,這些系統對推動信息化的發展起了舉足輕重的作用,然而這些系統可能是建立在不同的環境下,如何進行互操作和資源共享,成為了迫切需要解決的問題。

現有的應用系統中,不同應用之間通信存在以下問題:一是通信雙方的環境如操作系統、協議等不同可能造成雙方無法進行數據交換;二是服務器必須與客戶端保持連接通信的狀態,被動的等待遠程客戶端的通信請求,因此性能隨著用戶數目的增加而不斷下降;三是存在因多用戶、多數據庫的連接,而導致系統死鎖和崩潰的潛在可能;四是明確發送和接收雙方調用的接口,一旦一方發生變化,必須在第一時間通知對方,否則會造成數據的丟失和通信的阻礙;五是程序更新維護難,一旦程序的變更,就需要對系統進行重大修改,增加了維護和管理難度。

為解決以上問題,引進了一個“中間層”,將系統的表示層、邏輯層和數據層分隔開來,成為獨立的單元,這個“中間層”就是中間件。系統的開發者不需要將數據傳輸層和邏輯處理寫入應用程序中,只需通過中間件提供的API,將應用程序與中間件、服務器有效快速的連接起來,實現資源的共享和互操作。

MOM(Message-Oriented Middleware(消息中間件)是解決異構分布式系統中通信和排隊問題的中間件技術,ActiveMQ則是MOM的一個跨語言跨平臺實現[7],是一款常用的企業級JMS實現產品,因其實時性高,數據指標接收速度快,取得了良好業績。但是當涉及數百家單位、而且客戶端連接技術不統一、連接不規范、連接后不釋放、數據格式發送不符合規范等因素時,會導致中心ActiveMQ每隔一個月左右因阻塞而宕掉。

本文針對企業應用現象,在分析了消息隊列中間件國內外應用現狀的基礎上,通過研究ActiveMQ的自身實現架構,主要以JMX(Java Management Extensions,Java管理擴展)為主,通過Java、ActiveMQ的內部設計機制,實現一種按照預先設計的規則庫監控各連接客戶端并對不規則連接進行優化處理方法,保證ActiveMQ中心能夠長期穩定的運行,保障監控數據的順利接收,提高了企業應用的數據連續性與穩定性。

1 不規則并發連接問題總計

ActiveMQ是基于Java JMS的分布式、跨平臺的消息應用平臺軟件,其使用方法與數據庫類似,需要先建立連接(Connection)與會話(Session),訪問結束時需要顯式關閉連接和連接會話,當客戶端因為某種因素未執行關閉時將會導致ActiveMQ服務中心因最大連接數耗盡而導致服務宕掉,從而影響系統應用、導致企業數據的丟失等問題。

從上述分析可以了解,可以得出以下幾點結論:

(1)ActiveMQ本身有連接數限制,據測試并發連接數達1500以上時,ActiveMQ將會出現存取消息數據效率快速下降、無法建立新的連接等問題。

(2)JVM有大小限制,據測試ActiveMQ最大JVM為1G左右。

(3)ActiveMQ 無法建立新連接,從而無法接收新的消息數據。

(4)ActiveMQ的連接不關閉,可能導致會話死鎖。

(5)ActiveMQ死鎖可能使消息數據無法消費,長期導致JVM溢出,甚至導致服務宕掉。

在上述結論基礎上,研究企業應用現狀,可能導致大量并發數問題產生的原因大致包括:

(1)客戶端連接Connection使用完未關閉,下次使用建立新的連接Connection。

(2)客戶端會話Session使用完未關閉,下次使用建立新的會話Session。

(3)客戶端連接采用連接池技術(Pooled Connection)時,當應用廠家眾多時如超過數百家,可能會導致連接資源耗盡。

(4)客戶端發送未使用隊列,導致JVM溢出,導致新的Connection無法建立等情況。

2 并發數優化設計與實現

本節從ActiveMQ大量并發連接數下由于客戶端連接不合理帶來的問題開始分析,比較了幾種連接數問題處理方法,最終提取并設計一種基于JMX規則庫的連接數優化方案。

2.1 幾種優化方法的比較

(1)顯式關閉連接和會話

顯式關閉的應用場景為客戶端能夠顯式關閉連接和會話,企業應用時尤其現代化信息系統建設涉及跨廠家、跨平臺,需要大量的應用業務數據集成。各廠家接口開發人員技術素質參差不齊,多廠家接口開發時間不一,尤其是測試不到位時,將會經常導致連接溢出現象,從而需要廠商接口進行進一步的優化。

ActiveMQ連接溢出將會對數據集成方帶來巨大應用壓力,某一廠家接口問題可能會導致全體數據的丟失,從而影響信息系統的整體使用。

此種辦法要求開發商嚴格按照標準技術進行開發,此方式對集成方來說屬于被動式連接處理,實際情況因為種種因素可能短期內不會有改善。

(2)Server端連接關閉

客戶端關閉方法是對技術的嚴格要求才能實現。Server端連接關閉由ActiveMQ服務應用廠商進行處理。Server端關閉的一般方法為,設計ActiveMQ 插件,利用ActiveMQ API提供的方法,獲得客戶端連接情況,并采取辦法進行關閉。

利用服務端ActiveMQ API關閉連接Connection,在很大程度上能夠解決連接未關閉的問題,而且此方法為主動式的關閉。

但是當連接出現死鎖時,服務端ActiveMQ API可能會失效。

2.2 優化方法的設計與實現

從2.1節兩種常用的解決情況分析來看,效果并不理想,甚至非常耗費聯合調試精力。本節采用另一種Java底層機制設計并實現ActiveMQ連接數及JVM占有量的監控與管理方法。

JMX(jdk1.5默認不開啟,jdk1.6默認開啟)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。任何基于JVM運行的應用程序在一定條件下,不做任何代碼編寫,即可使用JMX對JVM相關參數及方法進行監控與管理,如:關閉線程、查看堆棧量、查看進程內部類數量等。

ActiveMQ很好的實現了JMX協議,可以通過底層協議對其進行監控與管理。

(1)設計

基于JMX的ActiveMQ連接數優化的設計,主要包括:連接客戶端管理規則庫、ActiveMQ監控參數、監控處理方案等設計。

圖1 監控示意圖

①連接客戶端管理規則庫

必須的定義:客戶端連接源(IP)、每個連接源最大連接數、處理規則、連接對象最近一次執行時間、日志記錄規則等內容。

客戶端連接源用于確保連接ActiveMQ服務中心的連接對象處于授權狀態,并且授權可建立的最大的連接數,如機器A最大可建立10個連接,機器B最大可建立5個連接。當機器連接超過規則庫配置的最大連接數時,將會按照處理規則處理連接對象,如通過JMX技術手段,強制中斷該機器的所有連接對象等。

②ActiveMQ監控參數

監控參數:當前連接數、當前隊列堆積數、JVM內存信息。監控參數用于輔助查看當前ActiveMQ運行狀態,當出現指標偏離正常現象時,可以為處理規則提供一定的處理參考依據。比如當前連接數超過ActiveMQ警戒值時,通知處理規則進行強制處理當前所有連接對象,如中斷長時間未執行的連接對象。

③監控處理方案

處理規則庫一次性初始化加載,對ActiveMQ以心跳時間片輪詢方式定期監控其連接狀態,當異常時,利用規則庫進行處理。

(2)實現

根據規則配置庫,當出現連接異常時,如超過機器授權最大連接數時或超過ActiveMQ警戒值時,對ActiveMQ并發連接進行規則處理,下面是獲取連接數以及強制關閉連接客戶端的偽代碼。

①查詢當前所有連接對象

②強制停止連接對象

3 結束語

ActiveMQ是Apache旗下一款JMS工具,支持.NET、C++、Java等多種訪問方式,在企業級系統中大量應用,又因其實時性高,數據指標接收速度快,取得了良好業績。但當涉及數百家單位、而且客戶端連接不規范等因素時,會導致中心ActiveMQ服務阻塞而宕掉。本文通過以JMX的基礎技術,利用規則管理庫的思想,通過底層技術層面與業務規則相結合的手段,保障ActiveMQ中心在連接Connection問題下能夠長期穩定的運行,保障監控數據的順利接收。與此同時,本文的設計思路可為其他Java應用提供了一個良好的參考與借鑒。

另外,本文僅對并發連接數及相關的狀態做了一定研究與實驗,后續需要進一步對其他參數進行研究,爭取實現ActiveMQ全方位管理,達到更好的應用效果。

[1]Sun Mierosystems.Java Message Service Specifi ca-tion. http://java.sun.com/Products/ims.

[2]Apache ActiveMQ.http://activemq.apache.org.

[3]邱云.基于JMS的信息發布平臺的研究與實現[D].電子科技大學,2005.

[4]汪紅兵,佘春東,范植華,李磊,徐帆江.基于JMS的數據推送系統的設計與實現[J].計算機應用,2005.

[5]彭珍,曾廣周.基于JMS規范的群組通信中間件的研究[J].計算機工程與設計,2005.

[6]張帆.基于JMS的消息中間件的設計[D].武漢理工大學,2007.

[7]戴俊.基于ActiveMQ的異步消息總線的設計與實現[J].計算機系統應用,2010.

[8]李英芳.基于網絡報稅系統的消息隊列中間件的研究與設計[D].西安電子科技大學,2006.

猜你喜歡
規則方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
撐竿跳規則的制定
數獨的規則和演變
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
TPP反腐敗規則對我國的啟示
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 精品国产自在现线看久久| 国产在线视频导航| 成人福利在线视频| 国产精品毛片一区| 久久黄色视频影| 国产第一页免费浮力影院| 婷婷综合缴情亚洲五月伊| 亚洲人妖在线| 野花国产精品入口| 亚洲免费播放| 久久99精品久久久久纯品| 爆乳熟妇一区二区三区| 成人日韩欧美| 蜜桃视频一区二区| 欧美激情福利| 国产日韩丝袜一二三区| 国产精品jizz在线观看软件| 国产微拍一区二区三区四区| 综合人妻久久一区二区精品 | 91午夜福利在线观看| 成人在线不卡视频| 狠狠做深爱婷婷综合一区| 婷婷99视频精品全部在线观看| 天天综合网亚洲网站| 亚洲色图在线观看| 真实国产乱子伦高清| 日本午夜视频在线观看| 岛国精品一区免费视频在线观看| 99爱视频精品免视看| 中文字幕佐山爱一区二区免费| 欧美日韩资源| 国产精彩视频在线观看| 国产在线高清一级毛片| 亚洲欧美成人网| 99热这里只有精品免费| 无码一区二区波多野结衣播放搜索| 亚洲精品你懂的| 欧美综合区自拍亚洲综合天堂| 欧美成人亚洲综合精品欧美激情| 成人免费网站久久久| 国产成人91精品免费网址在线| 亚洲最大福利视频网| 中文字幕亚洲乱码熟女1区2区| 久久精品免费看一| 国产在线专区| 亚洲天堂网2014| 亚洲国产天堂在线观看| 亚洲第一av网站| 狠狠色香婷婷久久亚洲精品| 成人免费黄色小视频| 中文字幕 91| 免费中文字幕一级毛片| 中文无码日韩精品| 小说 亚洲 无码 精品| 中文字幕精品一区二区三区视频 | 一级福利视频| 国产精品 欧美激情 在线播放| 国产亚洲精品在天天在线麻豆 | 亚洲成人网在线播放| 亚洲精品成人片在线观看| 国产精品福利在线观看无码卡| 亚洲动漫h| 国产精品毛片一区视频播| 久久精品娱乐亚洲领先| 国产乱论视频| 激情综合五月网| 不卡无码h在线观看| 欧美一区二区自偷自拍视频| 夜色爽爽影院18禁妓女影院| 99激情网| 色综合热无码热国产| 亚洲天堂成人| 亚洲国产精品日韩av专区| 天天做天天爱天天爽综合区| 国产手机在线观看| 性欧美久久| 亚洲精品欧美重口| 国产精品自拍合集| 特级毛片8级毛片免费观看| 71pao成人国产永久免费视频| 久久久久亚洲精品无码网站| 欧美成人a∨视频免费观看|