0
在ActiveMQ中,我被告知,增加吞吐量的最佳解決方案是擁有多個連接,每個連接都有自己的會話和消費者。ActiveMQ - 每個會話有多個連接?
我一直試圖通過NMS(通過C#連接)實現這一目標,但在MQ Web控制檯的「Active Consumwers」屏幕中,我看到我所有的連接&消費者列爲我所期望的看到他們,但在下一列中,他們都有一個「1」的sessionId。我本來希望每個人都有一個單獨的會話ID。
這是正確的嗎?如果每個連接/消費者應該有不同的會話ID,我將如何去確保創建這些額外的會話?
這裏是我用來啓動一個新的連接(這是基於Remarks ActiveMQ transactional messaging introduction code)一些示例代碼:
public QueueConnection(IConnectionFactory connectionFactory, string queueName, AcknowledgementMode acknowledgementMode)
{
this.connection = connectionFactory.CreateConnection();
this.connection.Start();
this.session = this.connection.CreateSession(acknowledgementMode);
this.queue = new ActiveMQQueue(queueName);
}
...這正在每次所做每個我的連接開幕。由於它使用一個共同的會話(this.session)的所有消費者
public SimpleQueueListener CreateSimpleQueueListener(IMessageProcessor processor)
{
IMessageConsumer consumer = this.session.CreateConsumer(this.queue, "2 > 1");
return new SimpleQueueListener(consumer, processor, this.session);
}
:
您使用的是什麼版本的ActiveMQ和NMS? – Noctris 2010-09-16 13:37:15
另一個問題:你在創建IConnectionFactory時是否意外設置了Clientid?我快速瀏覽了源代碼並注意到這會被推送到連接ID以及可能的會話中:s – Noctris 2010-09-16 13:41:38