.net core进阶之Rabbitmq队列消息(三种类型)
Direct
根据交换机名称exchange与路由秘钥routingkey来找队列
消息从发送端发出,传送给交换器Exchange,RoutingKey,那么不管你发送给Queue1还是Queue2,【队列1,队列2】
一个消息都会保存在Queue1Queue2等与这个EchangeName与RoutingKeyName绑定的所有队列中,
这就是交换器的direct类型的路由规则,只要找到路由器与routingKey绑定的队列,不管有多少队列,就分发给多少队列。
Fanout
忽略 RoutingKey,为广播模式,消息从发送端发出,只要Queue与Exchange绑定,
那么不管RoutingKey是什么都会将消息分发给所有与该Exchange绑定的队列中
Topic
这个类型的路由规则很灵活,它是根据Routing的设置,来做匹配,其中这里还有两个通配符为:*
代表任意的一个词,例如key_test.*,它能够匹配到,key_test.one,key_test.two,key_test.three,...
#代表任意多个词,例如key.#,他能够匹配到,key_test.one,key_test.two,key_test.three,...
虚拟主机
每个RabbitMq服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(vhost)每一个vhost本质是一个mini版的RabbitMQ服务器,拥有自己的队列,交换器和绑定等等,与其它虚拟主机分离,互不干扰。