rabbitmq 简介及使用

1、RabbitMQ简介,符合JMS标准的。

JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。而MQ则是消息队列服务,是面向消息中间件的最终实现,是真正的消息服务提供者。MQ的实现可以基于JMS,也可以基于其他规范或标准,其中RabbitMQ 就是基于JMS规范实现的消息队列。

RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。

AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。

RabbitMQ 用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括:

1.1 可靠性

RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。

1.2 灵活的路由

在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个 Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。

1.3 消息集群

多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker 。

1.4 高可用

队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。

1.5 多种协议

RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。

1.6 多语言客户端

RabbitMQ 几乎支持所有常用语言,比如 Java、.NET、Ruby 等等。

1.7管理界面

RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。

1.8 跟踪机制

如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。

1.9 插件机制

RabbitMQ 提供了许多插件,来从多方面进行扩展,也可以编写自己的插件。

 

 

项目采用消息队列作为基础架构,实现了服务间解耦合,用户可根据不同的资源动态的对服务进行集群。具体特点如下:

2.1 服务解耦将原有的巨大的单体应用拆分为多个独立的微服务,使得每个服务更专注于自己的业务,满足高内聚低耦合的设计原则。

2.2 独立的开发环境将应用拆分为独立的微服务,服务之间彼此隔离,通过轻量级的通讯机制进行交互,使得开发时无需关注具体的开发环境,只需要协商好通讯机制即可。

2.3独立的部署环境微服务拥有独立的开发环境,因此需要根据各自的开发环境规划部署环境,对于访问量大的服务可以增加服务的部署数量,访问量小的服务适当的减少部署数量。

2.4更高的扩展性基于服务的独立性,服务之间的耦合性降低,无论从功能上,还是架构上,我们都可以进行更为灵活的扩展,而不影响其他服务。

 

Rabbitmq页面

 

 

  1. 项目采用的集群架构图及其优点

项目采用镜像集群非常经典的mirror镜像模式,保证100%数据不丢失。在实际工作中也是用得最多的,并且实现非常的简单,一般互联网大厂都会构建这种镜像集群模式。

    mirror镜像队列,目的是为了保证rabbitMQ数据的高可靠性解决方案,主要就是实现数据的同步,一般来讲是 2 - 3 个节点实现数据同步。对于 100% 数据可靠性解决方案,一般是采用3个节点。

集群架构如下

 

  如上图所示,用 KeepAlived 做了 HA-Proxy 的高可用,然后有 3 个节点的 MQ 服务,消息发送到主节点上,主节点通过 mirror 队列把数据同步到其他的 MQ 节点,这样来实现其高可靠。

3、微信公众号消息队列

 

  1. “微信公众号”接收到需要发布的地震信息后,查询当前需要发送的用户列表,将用户列表按照一定体量进行分割,分割后的用户列表与地震信息组合成消息放入“微信发布队列”;
  2. “微信发布工”们从“微信发布队列”获取消息,按照消息内的用户列表无限启动线程并行推送给“腾讯服务器”,并接受返回;
  3. 所有线程都收到“腾讯服务器”返回值后,“微信发布工”此条消息完成,从“微信发布队列”获取新消息;
  4. 当“微信发布队列”内消息处理完成,发布结束。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值