一、RabbitMq定位
RabbitMq是一个基于消息订阅发布的一款消息中间件。
二、技术原理
核心概念
-
server:又称broker,接受客户端连接,实现AMQP实体服务。缓存代理,Kafka集群中的一台或多台服务器统称broker.
-
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:消息队列,用来存放消息的队列。
三、Exchange类型解读
Direct:精准+直连确定队列
交换机绑定一个或多个队列
Fanout:无差别广播确定队列
Topic:模糊匹配