RabbitMQ中间件

1、简介

消息中间件也称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。
消息传递:指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信

2、当下主流的消息中间件

RabbitMQ、Kafka、ActiveMQ、RocketMQ

3、作用

冗余(存储)、扩展性、可恢复性、顺序保证、缓冲、异步通信、多语言客户端、管理界面、插件机制

4、消息中间件的两种模式
1、P2P模式

1.三角色:
消息队列Queue、发送者Sender、接收者Receiver

2.P2P特点

  • 每个消息只有一个消费者(Consumer),即一旦被消费,消息就不再在消息队列中
  • 发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行它不会影响到消息被发送到队列
  • 接收者在成功接收消息之后需向队列应答成功
  • 如果希望发送的每个消息都会被成功处理的话,那么需要P2P模式

2、Pub/Sub模式

  1. 三角色:
    主题Topic、发布者Publisher、订阅者Subscriber
  1. 特点
  • 每个消息可以有多个消费者
  • 发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息
  • 为了消费消息,订阅者必须保持运行的状态
  • 如果希望发送的消息可以不被做任何处理、或者只被一个消息者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型

5、RabbitMQ的三种模式

单一模式、普通模式、镜像模式(将消息队列做成镜像队列,存放于多个节点,属于HA方案。基于普通集群模式上配置镜像模式,实现高可用)

6、RabbitMQ的集群节点

1、内存节点:所有数据存储在内存
2、磁盘节点保存状态到内存和磁盘

7、RabbitMQ简介

基于Erlong语言开发,基于AMQP协议实现。本身不支持反正;支持高并发、可扩展。支持AJAX、持久化,用于在分布式系统中存储转发消息

8、了解RabbitMQ

在RabbitMQ集群中,必须至少有一个磁盘节点,否则队列元数据无法写入集群中,当磁盘节点宕掉时,集群无法写入新的队列元数据信息。

9、集群重启顺序

启动顺序:磁盘节点--->内存结点
关闭顺序:内存节点--->磁盘节点
注意:最后关闭的一定时磁盘节点,否则会造成启动失败、数据丢失等异常情况。

你可能感兴趣的:(RabbitMQ中间件)