0
我有一個關於ActiveMQ和生產者的問題。ActiveMQ生產者創建和不活動期間
我應該爲每次發送消息都創建一個生產者嗎?或者一直使用同一個?是否通過爲每次發送創建一個製作人來影響性能?
而且連接一段時間無操作後下來,但如果它與此相關的,我不知道,任何建議?
我有一個關於ActiveMQ和生產者的問題。ActiveMQ生產者創建和不活動期間
我應該爲每次發送消息都創建一個生產者嗎?或者一直使用同一個?是否通過爲每次發送創建一個製作人來影響性能?
而且連接一段時間無操作後下來,但如果它與此相關的,我不知道,任何建議?
是的,有創造一個製片人小的性能影響,特別是如果代理位於另一臺機器上(客戶端需要跟經紀人來創建一個製片人)。
在這個答案的其餘部分我假設你使用Java/JMS與AMQ交談。
如果你有一個非常重要的程序,你當然可以「再利用」的製片人,他們創造一個「空」的目標,併發送時設定的目標。
你可以做什麼,可以很容易的使用PooledConnectionFactory哪些池連接,會話和生產者。我認爲包裝類將幫助你。
其實,你可以使用這樣的PooledConnectionFactory(僞代碼):
cf = new PooledConnectionFactory(myOriginalConnectionFactory)
sendMessage(cf)
sendMessage(cf)
sendMessage(cf)
SendMessage(connectionFactory)
conn = connectionFactory.CreateConnection
sess = conn.CreateSession
prod = sess.createProducer
msg = sess.createMessage
prod.send(msg)
prod.close
sess.close
conn.close
這意味着你不必擔心關閉/打開的會話,連接等,這是方式的廣泛應用JmsTemplate
來自Spring Framework的作品(當然,使用池化/緩存資源的效果會更好)。
也期待在this頁面性能的技巧和竅門。
謝謝,這是有用的信息。 –