rabbitMq 是实现了高级消息队列协议的开源代理软件,服务器使用erlang语言编写的,而集群和故障专业构建开发平台框架上的,消息队列就是一个使用队列通信的组件。
rabbitmq三大特点:
削峰,解耦,异步
可靠性:持久化,待确认以及发布确认
高可用:队列可以在集群上设计镜像,不管那个节点出现了问题,队列仍可用。
扩展性:多个rabbitmq节点可以组成一个集群,可以根据业务场景扩展。
多语言客户端,管理界面
多种协议 支持原始的的amqp协议还支持stopmq mqtt等多种消息中间件协议
灵活的路由:在消息进入对列之前,通过交换器来控制路由消息。
amqp是什么?
生产者将消息发给交换机,交换器和路由绑定。而rannitmq中的交换器交换器类型 对列 绑定 路由器都是遵循amqp协议相应的概念。
amqp协议三层:
module layer 协议最高层,主要定义了客户端的一些命令,客户端可以根据这些命令实现一些业务逻辑
session layer 协议中层 主要负责客户端发给服务器,再讲服务器发个客户端提供可靠ing同步机制的错误处理
transport layer 协议最底层 主要传输二进制流 提供信道服用,数据表示
amp模型的几大组件:
交换机:消息代理服务器中用于把消息路由到队列的组件
队列:用来储存消息的数据结构,位于硬盘和内存中
绑定:一套规则,告知交换器消息投递给那个队列。