私は 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);
}
}
}
}
コンストラクターのパラメーターとして注入されるこのクラスのインスタンスは 1 つだけです。
メッセージが頻繁に送信されるため (多くの場合、10 秒ごとに 1 つのメッセージ)、接続、セッション、およびプロデューサーの作成のオーバーヘッドが心配です。接続、セッション、またはプロデューサーのインスタンスを再利用する必要がありますか? そのようなシナリオで一般的なパターンは何ですか?