我剛剛開始使用ActiveMQ的東西,並得到了幾個問題。.Net NMS.ActiveMQ應該存儲消息發送調用之間的會話和連接
我應該使用ActiveMQ的
我做了什麼,現在發送消息:
public class ActiveMQSender
{
private readonly Uri connectionUri;
private readonly IConnectionFactory connectionFactory;
private readonly string destinationName;
public ActiveMQSender()
{
this.connectionUri = new Uri("activemq:tcp://localhost:61616");
this.connectionFactory = new NMSConnectionFactory(this.connectionUri);
this.destinationName = "queue://testQ";
}
public void Send(string msg)
{
using (var connection = this.connectionFactory.CreateConnection())
using (var session = connection.CreateSession())
{
var destination = SessionUtil.GetDestination(session, this.destinationName);
using (var producer = session.CreateProducer(destination))
{
connection.Start();
var message = session.CreateTextMessage(msg);
producer.Send(message);
}
}
}
}
只會有一個這個類將被注入的構造函數的參數的實例。
我擔心連接,會話和生產者創建的開銷,因爲消息會經常發送(通常每10秒鐘發送一條消息) 我應該重用連接,會話還是生產者實例,以及我應該如何對連接失敗?這種情況下常見的模式是什麼?