鑷凡鏁寸悊鐨勪竴浜涢浂鏁g殑鐭ヨ瘑鐐?br />
綆浠?/strong>
AMQP錛堟秷鎭槦鍒楀崗璁紝Advanced Message Queuing Protocol錛夋槸涓縐嶆秷鎭崗璁?錛岀瓑鍚屼簬JMS錛屼絾鏄疛MS鍙槸java騫沖彴鐨勬柟妗堬紝AMQP鏄竴涓法璇█鐨勫崗璁?/p>
AMQP 涓嶅垎璇█騫沖彴,鏈鍒濇潵鑷狫PMorgon,鍥犱負涓氬姟闇瑕佽屾粙鐢燂紝寰堝揩浠庨噾铻嶇晫鎺ㄥ箍鍒版暣涓綆楁満鐣屾祦琛岃搗鏉ャ?/p>
AMQP 鐩墠榪樻槸涓涓崏妗堬紝鏈鏂扮増鏈槸錛?.10
Publisher --->Exchange ---> MessageQueue --->Consumer
鏁翠釜榪囩▼鏄紓姝ョ殑.Publisher,Consumer鐩鎬簰涓嶇煡閬撳鏂圭殑瀛樺湪
Exchange璐熻矗浜ゆ崲/璺敱錛屼緷闈燫outing Key,姣忎釜娑堟伅鑰呮湁涓涓猂outing Key
姣忎釜Binding灝嗚嚜宸叉劅鍏磋叮鐨凴outingKey鍛婅瘔Exchange,浠ヤ究Exchange灝嗙浉鍏崇殑
娑堟伅杞彂緇欑浉搴旂殑Queue
鍑犱釜姒傚康
Producer,Routing Key,Exchange,Binding,Queue,Consumer.
Producer: 娑堟伅鐨勫垱寤鴻咃紝娑堟伅鐨勫彂閫佽?/p>
Routing Key錛氬敮涓鐢ㄦ潵鏄犲皠娑堟伅璇ヨ繘鍏ュ摢涓槦鍒楃殑鏍囪瘑
Exchange錛氳礋璐f秷鎭殑璺敱錛屼氦鎹?/p>
Binding:瀹氫箟Queue鍜孍xchange鐨勬槧灝勫叧緋?/p>
Queue錛氭秷鎭槦鍒?/p>
Consumer錛氭秷鎭殑浣跨敤鑰?/p>
Exchange綾誨瀷
Fan-Out:綾諱技浜庡箍鎾柟寮忥紝涓嶇RoutingKey
Direct:鏍規嵁RoutingKey,榪涜鍏寵仈鎶曞瘎
Topic:綾諱技浜嶥irect,浣嗘槸鏀寔澶氫釜Key鍏寵仈錛屼互緇勭殑鏂瑰紡鎶曞瘎銆?/p>
key浠?鏉ュ畾涔夌晫闄愩傜被浼間簬usea.news,usea.weather.榪欎袱涓秷鎭槸涓緇勭殑銆?/p>
QPID
QPID鏄疉MQP鐨勪竴涓疄鐜幫紝鎻愪緵C++錛孞AVA鐗堟湰鐨刡roker,鏀寔澶氱璇█瀹㈡埛绔?/p>
鍩烘湰鍔熻兘澶栨彁渚涗互涓嬬壒鎬э細
閲囩敤 Corosync(?)鏉ヤ繚璇侀泦緹ょ幆澧冧笅鐨凢ault-tolerant(?) 鐗規?/p>
鏀寔XML鐨凟xchange,娑堟伅涓篨ML鏃訛紝褰╃敤Xquery榪囨護
鏀寔plugin
鎻愪緵瀹夊叏璁よ瘉錛屽彲瀵筽roducer/consumer鎻愪緵韜喚璁よ瘉
qpidd --port --no-data-dir --auth
port:绔彛
--no-data-dir:涓嶆寚瀹氭暟鎹洰褰?/p>
--auth錛氫笉鍚敤瀹夊叏韜喚璁よ瘉
鍚姩鍚庤嚜鍔ㄥ垱寤轟竴浜汦xchange,amp.topic,amp.direct,amp.fanout
tools:
Qpid-config:緇存姢Queue,Exchange,鍐呴儴閰嶇疆
Qpid-route:閰嶇疆broker Federation(鑱旂洘錛熼泦緹わ紵)
Qpid-tool:鐩戞帶
鍙傝冿細
鍏充簬AMQP鏇村淇℃伅鍙弬鑰冿細 http://www.openamq.org/doc:amqp-background
鍏充簬QPID鐨勬洿澶氬拰浣跨敤鍙弬鑰冿細http://qpid.apache.org/
灝唖essions榪欎釜map鐢蟲槑涓虹嚎紼嬪畨鍏ㄧ殑map,鍒欐搷浣渕ap涓殑浠諱綍鏂規硶鏃訛紝閮戒細鍔犻攣錛屽茍涓斾細閿佷綇sessions瀵硅薄銆?/span> 榪欒浠g爜錛屽垯鍦ㄥ閮ㄧ嚎紼嬭闂畆emove鏂規硶鏃朵細閿佷綇SimpleStore榪欎釜瀵硅薄銆?br />
鍙互鐪嬪埌錛岀洰鍓嶅湪鍚屼竴涓被鎴栬呮柟娉曚腑錛屾湁涓ゆ妸閿侊紝騫朵笖閿佸璞′笉鏄悓涓涓紝閭d笅闈㈡垜浠湅鐪嬬嚎紼嬫槸鎬庝箞琚閿佷綇鐨勶細
1, 鍋囪A綰跨▼鍏堣皟鐢╮emove鏂規硶錛屽垯榪欐椂浼氭妸simpleStore緇欓攣浣忥紝鐒跺悗鎵цsessions.put(sessionID, “”)鐨勬椂鍊欙紝浼氬皾璇曢攣浣弒essions
2, 鍚屾椂B綰跨▼璋冪敤commit鏂規硶錛屽湪 synchronized (sessions) 鏃訛紝浼氬厛閿佷綇sessions瀵硅薄錛屽茍涓斿湪璋冪敤鎺ヤ笅鏉ョ殑remove()璇曪紝浼氬皾璇曢攣浣?nbsp; SimpleStore瀵硅薄錛岃嚦姝わ紝綰跨▼A鍜岀嚎紼婤緇堜簬鎴愬姛瀹屾垚姝婚攣銆?/span>
鎵浠ュ湪浣跨敤澶氱嚎紼嬫椂涓瀹氳鐗瑰埆娉ㄦ剰錛屼嬌鐢ㄩ攣涓瀹氳娉ㄦ剰浣犵殑閿佸璞℃槸鍚︿竴鑷淬傝涓嶇劧灝辨湁鍙兘姝婚攣浜唦