Rabbit MQ Windows 环境下部署
1、下载
https://objects.githubusercontent.com/github-production-release-asset-2e65be/374927/3381b277-0ffa-4ddf-b353-dc78d1e9eda4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230707%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230707T061157Z&X-Amz-Expires=300&X-Amz-Signature=449b82e93b54fb79e8066bb84b93aeb05fb6cea5e38ff3b0d9150da2e2d8076a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=374927&response-content-disposition=attachment%3B%20filename%3Dotp_win64_26.0.2.exe&response-content-type=application%2Foctet-stream
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.1/rabbitmq-server-3.12.1.exe
2、安装、先安装erlang(otp_win64_26.0.2),再安装rabbitmq-server-3.12.1.exe
2.1 安装后将 安装目录\bin,这个路径添加到环境变量。
3、安装完成后,cmd访问到安装目录
3.1 运行命令:rabbitmqctl start_app
3.2 运行命令:plugins enable rabbitmq_management
4、使用账号:guest、密码:guest登录,该账户只有本机才有权限访问,远程访问需要再建账户。
5、Nuget 添加
6、MQ 消费端方法
public void Consumer()
{
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
/*
*创建队列,声明并创建一个队列,如果队列存在,则使用这个队列
*第一个参数:队列名称ID
*第二个参数:是否持久化,false对应不持久化数据,MQ停掉数据就会数据丢失
*第三个参数:是否队列私有化,false则代表所有的消费者都可以访问,true代表只有第一次拥有它的消费者才能一直使用
*第四个参数:是否自动删除,false代表连接停掉后不自动删除这个队列
*其他额外参数为null
*/
channel.QueueDeclare("machine_loom_0036", true, false, false, null);
EventingBasicConsumer consumers = new EventingBasicConsumer(channel);
//触发事件
consumers.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
//false只是确认签收当前的消息,true则代表签收该消费者所有未签收的消息
channel.BasicAck(ea.DeliveryTag, false);
MessageBox.Show($"消费者接收消息:{message}");
};
/*
* 从MQ服务器中获取数据
* 创建一个消息消费者
* 第一个参数:队列名
* 第二个参数:是否确认自动确认收到消息,false代表手动确认消息,这是MQ推荐的做法
* 第三个参数:要传入的BasicConsumer接口
*/
channel.BasicConsume("machine_loom_0036", false, consumers);
}
}
}
7、生产端方法