RabbitMQ 是一款开源且比较流行的消息中间件。但用起来还是比较麻烦,有人封装了一层, 这就是 EasyNetQ 。
一、安装
1、安装 Erlang: http://www.erlang.org/download.html
2、安装 RabbitMQ server : http://www.rabbitmq.com/download.html
3、安装 RabbitMQ management API tool : http://www.rabbitmq.com/management.html (web 页面管理工具)
- 找到 rabbitmq-plugins 所在文件夹(一般在 sbin 文件夹下)
- 在文件夹下运行 cmd
- 在 cmd 中运行 rabbitmq-plugins enable rabbitmq_management
4、 重启 RabbitMq 服务
二、集群 (Cluster)
此处指的是负载均衡集群:将任务分配给有资源的服务器处理。
此处有三种模型
模式 1、最基础的集群(无需负载均衡功能)
代码语言:javascript复制var bus = RabbitHutch.CreateBus("host=myhost.svj.com ,sechost.svj.com");// 创建连接时,指定多主机地址完成集群
在连接的主机域名处,添加多个域名,域名之间以逗号分隔, 当连接首个域名失败,则会尝试连接后面的域名,若失败继续向后连接,依次寻找可连接主机。
模式 2、随机选择域名 (具备基础的负载均衡功能, 适用于多个服务调用 RabbitMQ 服务)
代码语言:javascript复制var bus = RabbitHutch.CreateBus("host=myfirsthost,mysecondhost", x => x.Register<IClusterHostSelectionStrategy<ConnectionFactoryInfo>, RandomClusterHostSelectionStrategy<ConnectionFactoryInfo>>());
模式 3、使用专业的负载均衡器
三、镜像队列(Mirror Queue)
使用镜像队列的前提条件是完成了集群。
将 queue 镜像到集群中的其他节点的队列上, 防止单点队列失效,以及 Message 丢失 。
镜像队列的设置可以在 web 页面中设置
Policies > Add / update a policy. 完成,队列的更新。
如果需要查看其节点以及镜像 ,可以点击此处查看 https://www.rabbitmq.com/ha.html#how-to-check-i-a-queue-is-mirrored
注意: 使用了队列镜像后, 在发布确认时,必须所有镜像队列都同步了消息,才能返回 isComplete 为 true 算是发布完成
以上皆为参考 https://github.com/EasyNetQ/EasyNetQ/wiki/Quick-Start