.NET中使用RabbitMQ总结

目前业界使用较多的消息队列组件有RabbitMQ、ActiveMQ、MSMQ、kafka、zeroMQ等

之间的对比可以看这里

之前搭过ActiveMQ环境带源码 点击这里

后来发现RabbitMQ性能比较好,决定这个项目中用到。

关于RabbitMQ的详细描述和安装可以看张善友老师的这篇文章 在 Windows 上安装Rabbit MQ 指南

最简单的方式是使RabbitMQ以Windows Service的方式在后台运行,所以我们需要以管理员权限打开cmd,然后切换到sbin目录下,执行这三条命令即可:

rabbitmq-service install
rabbitmq-service enable
rabbitmq-service start

激活Rabbit MQ's Management Plugin

使用Rabbit MQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态,你可以在命令行中使用下面的命令激活:

rabbitmq-plugins.bat enable rabbitmq_management

要重启服务才能生效,可以执行

net stop RabbitMQ && net start RabbitMQ

使用浏览器打开http://localhost:15672 访问RabbitMQ的管理控制台。

看到这个登录界面那就说明插件安装成了。

如果在外部访问没有看到这页面检查下防火墙。

默认账号密码都是guest

搭建环境安装服务都很顺利。

下面主要总结下使用RabbitMQ 遇到的问题:

封装RabbitMQ.NET Library 的一点经验总结 这篇文章已经总结了很多经验了。

7.设置一次只接受一个消息,而不是直接LOCK住所有的队列消息

默认情况下,一个队列里不管多少消息当你一个TCP连接打上去之后会LOCK住所有的消息,也就是说一个连接彻底占用了所有的消息,此时消息不会被其他集群的机器消费。

10.消费失败的消息要重新放入队列

再补充几点:

在项目中是添加队列表后在去直接添加到MQ,这个时候如果添加MQ的时候如果MQ挂了,这部分数据怎么重新推到MQ?

看这篇文章可以得到点思路 WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)——所有webapi似乎都缺失的一个功能

可以通过一个服务去定时跑队列,可以在队列表添加三列,发送成功、接受成功、处理成功,查询状态时一目了然。

 参考:

原文地址:https://www.cnblogs.com/bigbrid/p/6514395.html