我刚刚开始使用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秒钟发送一条消息) 我应该重用连接,会话还是生产者实例,以及我应该如何对连接失败?这种情况下常见的模式是什么?