【发布时间】:2016-08-22 04:37:37
【问题描述】:
一般来说,SQL 连接的最佳实践是打开连接、执行查询和释放连接。但是,对于像 RabbitMQ 这样的基于 AMQP 的队列服务器,推荐的做法是什么。应用程序是否需要维护到 RabbitMQ 服务器的持久连接,或者为发布者端发送的每条消息打开和关闭连接。
public static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
channel.ExchangeDeclare(exchange: "logs", type: "fanout");
var message = GetMessage(args);
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "logs",
routingKey: "",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
private static string GetMessage(string[] args)
{
return ((args.Length > 0)
? string.Join(" ", args)
: "info: Hello World!");
}
【问题讨论】:
标签: c# connection rabbitmq amqp