消息队列和RabbitMQ简介

消息队列,是在消息的传输过程中保存消息的容器(中间件)。多用于分布式系统之间进行通信。

使用消息队列的优缺点

优点:

  1. 应用解耦(容错性、可维护性)
  2. 异步提速(用户体验、吞吐量)
  3. 削峰填谷(稳定性)

缺点:

  1. 系统可用性降低 (MQ宕机?如何保证MQ高可用?)
  2. 系统复杂度提高 (消息的顺序性?重复消费问题?)
  3. 一致性问题 (某个分布式系统处理失败如何保证一致性?)

使用MQ条件

    生产者不需要从消费者处获取反馈 容许短暂的不一致性 使用后利大于弊

RabbitMQ简介

AMQP(Advanced Message Queuing Protocol)高级消息队列协议,是一个应用层网络协议。RabbitMQ基于AMQP协议设计,采用Erlang语言开发,其基础架构如下: Broker:接受和分发消息的应用。 Virtual host:虚拟分组。 Connection:publisher/consumer和broker之间的TCP连接。 Channel:通道,轻量级通信连接。 Exchange:交换机,分发消息到Queue中。 Queue:存储消息的队列。 Binding:exchange和queue间的虚拟连接。

RabbitMQ的六种工作模式:简单模式、work queues、发布与订阅模式、路由模式、主题模式、远程调用模式。

JMS(JavaMessage Service):Java消息服务应用程序接口,JavaEE规范中的标准。

经验分享 程序员 微信小程序 职场和发展