/// <summary> /// 连接配置 /// </summary> private static readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory() { HostName = "172.18.0.88", UserName = "admin", Password = "admin123", Port = 5673, VirtualHost = "order" }; //队列名称 const string exchange = "yujiajun"; const string queueName = "auth"; /// <summary> /// 发送 /// </summary> public static void SendMsg() { using (IConnection conn = rabbitMqFactory.CreateConnection()) { using (IModel channel = conn.CreateModel()) { //在MQ上定义一个持久化队列,如果名称相同不会重复创建 channel.QueueDeclare(queueName, true, false, false, null); for (int i = 0; i < 100; i++) { string message = string.Format("Message_{0}", i); byte[] buffer = Encoding.UTF8.GetBytes(message); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish("", queueName, properties, buffer); Console.WriteLine("消息发送成功:" + message); } } } } /// <summary> /// 接收 /// </summary> public static void ReadMsg1() { IConnection conn = rabbitMqFactory.CreateConnection(); IModel channel = conn.CreateModel(); channel.BasicQos(0, 1, false); //在MQ上定义一个持久化队列,如果名称相同不会重复创建 channel.QueueDeclare(queueName, true, false, false, null); //在队列上定义一个消费者 EventingBasicConsumer consumer = new EventingBasicConsumer(channel); consumer.Received += (model, body) => { string msg = Encoding.UTF8.GetString(body.Body); Console.WriteLine(msg); channel.BasicAck(body.DeliveryTag, false); }; channel.BasicConsume(queueName, false, consumer); }