1.RabbitMQ高性能的原因
采用Erlang语言,优点在于有着和原生Socket一样的低延迟。
2.什么是AMQP
是应用层高级消息队列协议
3.AMQP核心概念
Server:又称Broker,接收客户端的连接,实现AMQP实体服务。
Connection:连接,应用程序和Broker之间网络连接。
Channel:网络信道,所有的操作都在Channel中进行,Channel时进行消息读写的通道。客户端可以建立多个Channel,每个Channel代表一个会话任务。
Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行修饰,比如消息优先级、延迟等高级特性;Body则是消息体的内容。
Virtual host:虚拟主机,用于进行逻辑隔离,最上层的消息路由。一个Virtual Host里面可以有若干个Exchange 和Queue、同一个Virtual Host里面不能有相同名称的Exchange 或Queue。
Exchange:交换机,接收消息,根据路由键转发消息到绑定队列。
Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routing key。
Routing key:一个路由规则,虚拟机可以用它来确定如何路由一个特定的消息。
Queue:也称为Message Queue ,消息队列,保存消息并将他们转给消费者。
4.RabbitMQ整体架构
生产端把消息投递到 RabbitMQ服务上,
server根据Exchange接收消息
消费端订阅制定的队列进行消费,
队列和交换机通过绑定和路由键进行消息投递。