Exchange Types
RabbitMQ常用的Exchange Type有fanout、direct、topic、RPC这四种。
fanout
所有发送到该Exchange的消息路由到所有与它绑定的Queue中。
direct
将消息路由到binding key与routing key完全匹配的Queue中。
topic
topic类型的Exchange在匹配规则上进行了扩展,它与direct类型的Exchage相似。
匹配规则
routing key为一个句点号.
分隔的字符串。
binding key与routing key一样也是句点号.
分隔的字符串。
binding key中可以存在两种特殊字符*
与#
,用于做模糊匹配。其中*
用于匹配一个单词,#
用于匹配多个单词(可以是零个)
RPC
1、客户端发送消息的时候,在消息的属性中设置两个值replyTo和correlationId。
2、服务端接收消息并进行处理。
3、服务器端处理完成后,生成一条应答消息到replyTo指定的Queue,同时带上correlationId属性。
4、客户端之前已订阅replyTo指定的Queue,从中收到服务器的应答消息后,根据其中的correlationId属性分析哪条请求被执行了,根据执行结果进行后续业务处理。