activemq网络桥接_ActiveMQ –经纪人网络解释–第3部分
activemq網(wǎng)絡(luò)橋接
現(xiàn)在,我們已經(jīng)在本博客系列的第1部分和第2 部分中了解了ActiveMQ網(wǎng)絡(luò)連接器的基礎(chǔ),在第3部分中,我們將研究ActiveMQ如何平衡連接到代理網(wǎng)絡(luò)的使用者。
介紹
當(dāng)可以無序處理隊列中的消息時通常使用并發(fā)使用者,通常可以提高消息吞吐量。 ActiveMQ代理以循環(huán)方式在使用者之間調(diào)度消息,以便在并發(fā)使用者之間平衡消息消耗,除非將使用者指定為獨占 。
讓我們看下面的示例,其中三個使用者同時處理隊列foo.bar中的消息。 生產(chǎn)者排隊60條消息,這些消息由三個消費者(每個20位)以循環(huán)方式處理。
在隊列foo.bar上啟動三個并發(fā)使用者
Ashwinis-MacBook-Pro:example akuntamukkala$ pwd /Users/akuntamukkala/apache-activemq-5.8.0/exampleAshwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar -DparallelThreads=3 -Dmax=20產(chǎn)生60條消息
Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar -Dmax=60以下屏幕截圖顯示了3個使用者正在處理來自隊列foo.bar的消息。 入隊和出隊60條消息。
如下所示,每個使用者處理了20條消息。
以下摘錄自日志,顯示消息被劃分為三個使用者。
[Thread-3] Received: 'Message: 1 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-2] Received: 'Message: 0 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-1] Received: 'Message: 2 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-3] Received: 'Message: 4 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-2] Received: 'Message: 3 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-1] Received: 'Message: 5 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-3] Received: 'Message: 7 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-2] Received: 'Message: 6 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-1] Received: 'Message: 8 sent at: Tue Mar 04 13:46:53 IST 2014 ?...' (length 1000)[Thread-3] Received: 'Message: 10 sent at: Tue Mar 04 13:46:53 IST 2014 ...' (length 1000)既然我們已經(jīng)看到了并發(fā)消費者在單個經(jīng)紀(jì)人上的工作方式,那么現(xiàn)在我們將研究當(dāng)消費者跨經(jīng)紀(jì)人網(wǎng)絡(luò)分布時它們?nèi)绾喂ぷ鳌?
本地與遠(yuǎn)程消費者
讓我們借助下圖所示的配置來探索ActiveMQ如何處理本地和遠(yuǎn)程使用者。
消費者1和消費者2分別使用來自Broker-1和Broker-2上的隊列foo.bar的消息。 Broker-1建立了到Broker-2的網(wǎng)絡(luò)連接器以轉(zhuǎn)發(fā)隊列消息。 生產(chǎn)者將消息放入Broker-1上的隊列foo.bar中
讓我們看看這個動作
- 編輯Broker-1的配置/Users/akuntamukkala/apache-activemq-5.8.0/bridge-demo/broker-1/conf/activemq.xml并打開與Broker-2的網(wǎng)絡(luò)連接器,然后重新啟動Broker-1和Broker-2
- 啟動本地消費者,消費者1
- 啟動遠(yuǎn)程使用者Consumer-2
- 在Broker-1上啟動生產(chǎn)者以排隊100條消息
屏幕截圖顯示了Broker-1的隊列:
讓我們看一下消費者,看看消息是如何被分離出來的。
您可能會注意到,ActiveMQ代理將消息均勻地分派給本地使用者,而不是遠(yuǎn)程使用者,從而給它們相同的優(yōu)先級。
遠(yuǎn)程使用者Consumer-2僅距離代理1跳,其距離配置的networkTTL值2小。
這會導(dǎo)致路由選擇欠佳,尤其是在連接了經(jīng)紀(jì)人時,使得生產(chǎn)者和消費者之間可能有多個路由。 為了確保生產(chǎn)者和消費者之間的最短路徑,最好將其分發(fā)給本地消費者,而不是偏遠(yuǎn)的消費者。
ActiveMQ提供了一種使用該屬性在本地使用者和遠(yuǎn)程使用者之間配置優(yōu)先級的方法
網(wǎng)絡(luò)連接器上的reductionNetworkConsumerPriority。
默認(rèn)情況下,此值為false,因此將本地和遠(yuǎn)程代理視為相同。
如果我們在更改了reduceNetworkConsumerPriority =“ true”之后重復(fù)上述步驟,那么我們發(fā)現(xiàn)本地消費者Consumer-1的優(yōu)先級高于遠(yuǎn)程消費者Consumer-2,即距離中間商1的路程。
ActiveMQ可以智能地找出消息生產(chǎn)者和消費者之間的代理網(wǎng)絡(luò)中的最短路徑。
請閱讀以下鏈接,以進(jìn)一步了解ActiveMQ的最佳路由。
- http://fusesource.com/docs/esb/4.3/amq_clustering/Networks-OptimizingRoutes.htm l
到此系列的第3部分結(jié)束,我們看到了如何區(qū)分本地和遠(yuǎn)程使用者以幫助ActiveMQ確定消息產(chǎn)生者和使用者之間的最佳路徑。
一如既往地歡迎您提出意見。
請繼續(xù)關(guān)注第4部分,我們將討論遠(yuǎn)程并發(fā)使用者的負(fù)載平衡…
翻譯自: https://www.javacodegeeks.com/2014/04/activemq-network-of-brokers-explained-part-3.html
activemq網(wǎng)絡(luò)橋接
總結(jié)
以上是生活随笔為你收集整理的activemq网络桥接_ActiveMQ –经纪人网络解释–第3部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卡五星安卓版下载卡五星下载(卡五星安卓)
- 下一篇: 党员备案是什么意思(党员备案吗)