RabbitMQ系列
RabbitMQ(四)——工作队列模式
工作队列模式:
一个生产者,多个消费者,每个消费者获取到的消息唯一,当您运行多个工作线程,这些消息将在工作线程之间共享,默认轮询获取。简单的说,工作队列模式和简单模式一样,只是简单模式一个生产者一个消费者一对一,而工作队列模式一个生产者多个消费者。
这里启动三个线程,分别为生产者,消费者1,消费者2其中生产者和消费者代码与上一篇简单模式基本一致,稍作修改
实现
生产者:
static void Main(string[] args) { //1.创建连接工厂 ConnectionFactory factory = new ConnectionFactory() { HostName = "127.0.0.1", UserName = "guest", Password = "guest" }; //2.创建连接 var connection = factory.CreateConnection(); //3.创建管道 var channel = connection.CreateModel(); //4.声明队列 channel.QueueDeclare("simple", false, false, false, null); for (int i = 0; i < 20; i++) { string msg = $"第{i + 1}条消息"; //5.发布消息 channel.BasicPublish("", "simple", null, Encoding.UTF8.GetBytes(msg)); Console.WriteLine($"已发送消息:{msg}"); Thread.Sleep(1000); } channel.Close(); connection.Close(); Console.ReadKey(); }