我已經定義如下駱駝碼頭-ActiveMQ的路線的新的ActiveMQ連接:從( 「碼頭:HTTP://0.0.0.0:8087/URL1」)是否駱駝碼頭-ActiveMQ的創建用於每個消息
。以(「ActiveMQ的:隊列:隊列1)
是否駱駝創建ActiveMQ的連接,然後使用由碼頭收到的所有郵件連接或創建每封郵件的ActiveMQ的連接
我打算使用連接池。對於activemq,由於我的消息流入速度非常高,我需要了解駱駝行爲以定義最大連接池大小。
我已經定義如下駱駝碼頭-ActiveMQ的路線的新的ActiveMQ連接:從( 「碼頭:HTTP://0.0.0.0:8087/URL1」)是否駱駝碼頭-ActiveMQ的創建用於每個消息
。以(「ActiveMQ的:隊列:隊列1)
是否駱駝創建ActiveMQ的連接,然後使用由碼頭收到的所有郵件連接或創建每封郵件的ActiveMQ的連接
我打算使用連接池。對於activemq,由於我的消息流入速度非常高,我需要了解駱駝行爲以定義最大連接池大小。
當發送消息時,ActiveMQ組件以及JMS組件基於Spring Framework的JMSTemplate。
正如您擔心的那樣,它會爲每條消息創建並關閉連接+會話+製作者,這不是最佳的明智表現。
按照activemq component documentation中的建議,您應該將其設置爲合併。然後你將重用連接/會話/製作者。
如果您打算僅將此路線用於此路線,您實際上只能在該游泳池的一個連接池中生活。
ActiveMQ製作了帶有JMSTemplate的summary of tips and tricks。值得一讀。
更新:關於有關的併發連接的數量:
簡化,連接是通過網絡連接(「插座」)與代理,即許多線程之間共享。您的每個線程仍將擁有使用共享連接並同時運行的自己(共用池)會話。如果您有多個ActiveMQ代理並希望在它們之間進行負載平衡(由於ActiveMQ是瓶頸而不是您的應用程序),所以多連接仍然可以是增強功能。
failover:(ssl://host1:61616,ssl://host2:61616)
這也可能是,在實際應用中,性能可能會通過使用一組有限的連接,而不是一上去一些小的程度,但你可能要測試出您的特定環境。
謝謝佩特。這有助於理解。你爲什麼說「實際上只用一個連接就能生活」。聽起來只有一個線程連接到activemq。那將是一個瓶頸。 jetty端點上的minThreads和maxThreads不能幫助創建從activemq池到多個代理的連接。請給出意見。 – techuser
添加了更新來解釋。您應該將Session視爲主要「每個線程」對象,而不是連接。 –