net RabbitMQ QueueBind 使用

//第一步:创建connection
var connection = factory.CreateConnection();

//第二步:创建一个channel
var channel = connection.CreateModel();

for (int i = 0; i < 100; i++)
{
		var msg = Encoding.UTF8.GetBytes(string.Format("{0} :{1}", i, "你好"));

		var level = i % 13 == 0 ? "info" : "error";   //方便演示的目的,

		//第五步:发布消息
		channel.BasicPublish("myexchange", routingKey: level, basicProperties: null, body: msg);

		Console.WriteLine(i);
}
var channel = connection.CreateModel();

//第三步:申明交换机【因为rabbitmq已经有了自定义的ampq default exchange】
channel.ExchangeDeclare("myexchange", ExchangeType.Direct, true, false, null);

//第四步:创建一个队列(queue)
channel.QueueDeclare("log_else", true, false, false, null);

var arrr = new string[3] { "debug", "info", "warning" };

//将debug,info,warning 都绑定到“log_else" 队列中。。。
for (int i = 0; i < arrr.Length; i++)
{
		channel.QueueBind("log_else", "myexchange", arrr[i], null);
}

EventingBasicConsumer consumer = new EventingBasicConsumer(channel);

consumer.Received += (sender, e) =>
{
		var msg = Encoding.UTF8.GetString(e.Body);

		Console.WriteLine(msg);
};

channel.BasicConsume("log_else", true, consumer);

作者:spike

分类: Net

创作时间:2023-06-25

更新时间:2024-12-09

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1