RabbitMQ基础

RabbitMQ基础

RabbitMQ特性基于Erlang语言和AMQP协议规范。

  • Erlang面向电信行业的函数式编程语言,它为RabbitMQ提供了节点之间消息通信轻量级线程,提供了状态无关的高并发性。
  • AMQP,它让RabbitMQ成为一个与供应商无关、平台独立的解决方案,使其可以实现灵活的消息路由、配置化的消息持久以及跨数据中心通信。

RabbitMQ的功能
1.为应用解耦:应用架构不再受限于数据库写入的性能瓶颈,应用只需要发送消息,不需要长时间占用线程等待响应;
2.为数据库解耦:将直接存在数据库的数据发送到RabbitMQ,从而实现数据的异步处理。同时也可以通过消费者应用进行限流或者直接关闭,避免数据库崩溃。
RabbitMQ基础_第1张图片
3.无缝添加新功能:RabbitMQ对同一份数据可以重复利用,把消息副本内容路由到多个消费者,从而实现不同的处理目标
4.复制数据与事件:通过RabbitMQ可以将同一个数据存储到不同的数据库中,同样也可以把不同数据库的数据应用到同一个系统。
5.多主互联化数据与事件:通过4的特性,可以实现数据存储和处理上的冗余机制,进而达成数据库实时热备份。
6.高级消息队列模型:RabbitMQ定义了抽象的组件:交换机、队列、绑定,由于组件是抽象的具体的定义可以根据业务场景进行扩展,使其更加灵活。

Rabbit的抽象组件
交换机:接收发送到RabbitMQ中的消息并决定把他们投递到那个队列的组件;
队列:用来存储消息的数据结构,位于硬盘或内存中。
绑定:一套规则,用于告诉交换器消息应该被存储到哪个队列。

你可能感兴趣的:(#,分布式)