专栏首页yl 成长笔记消息队列的使用 RabbitMQ(一): 安装与总体介绍

消息队列的使用 RabbitMQ(一): 安装与总体介绍

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、最基础的集群(无需负载均衡功能)

var bus = RabbitHutch.CreateBus("host=myhost.svj.com ,sechost.svj.com");// 创建连接时,指定多主机地址完成集群

在连接的主机域名处,添加多个域名,域名之间以逗号分隔, 当连接首个域名失败,则会尝试连接后面的域名,若失败继续向后连接,依次寻找可连接主机。

模式 2、随机选择域名 (具备基础的负载均衡功能, 适用于多个服务调用 RabbitMQ 服务)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MQ对比之RabbitMQ &Redis

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

    潘少
  • RabbitMQ技术详解

    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、A...

    烂猪皮
  • 对优秀程序员的思考

    不管是谁,活着总是有方向和追求的,差别可能是有些人“高尚”一些,有些人“低俗”一些,有些人对自己的方向没有那么坚定、今天定了明天可能就变了。 无论是短期或长期、...

    哲洛不闹
  • 不使用 Ruby 的十个理由

    请注意:这是一篇主观意识的文章。它的目的并不是要说服你使用或者不使用Ruby,或者其他任何技术。这篇文章所涉及到的环境是 Web 开发,而不是通用的编程。我想...

    Hongten
  • 惰性求值,懒执行,Lazy Evaluations

    最近看webflux的时候,补习一些基础(自己原因,之前没有做) 发现java Stream流操作,类似map(i -> i*2) 这样的中间操作, 有惰性求...

    dodo_lihao
  • SpringBoot 整合 RabbitMQ

    RabbitMQ 是由 Erlang 语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为面向消息的中间件)。其支持 Windows、Lin...

    好好学java
  • CentOS 7 下RabbitMQ 3.7 安装与配置

    https://ken.io/note/centos7-erlang-install

    ken.io
  • CentOS 7 下Erlang 20.2安装部署

    https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md

    ken.io
  • centos7 删除无用内核

    正常情况有两个启动项,一个是“正常启动”,另一个是“救援模式启动”(rescue)。 如果启动项多于2个,说明当前系统有旧内核未删除。原因是CentOS更新后不...

    herve

扫码关注云+社区

领取腾讯云代金券