路由模式
在发布/订阅模式的基础上,有选择的接收消息,也就是通过 routing 路由进行匹配条件是否满足接收消息。
P 表示为生产者、 X 表示交换机、C1C2 表示为消费者,红色表示队列。
上图是一个结合日志消费级别的配图,在路由模式它会把消息路由到那些 binding key 与 routing key 完全匹配的 Queue 中,此模式也就是 Exchange 模式中的 direct 模式。
以上图的配置为例,我们以 routingKey="error" 发送消息到 Exchange,则消息会路由到Queue1(amqp.gen-S9b…,这是由RabbitMQ自动生成的Queue名称)和Queue2(amqp.gen-Agl…)。如果我们以 routingKey="info" 或 routingKey="warning" 来发送消息,则消息只会路由到 Queue2。如果我们以其他 routingKey 发送消息,则消息不会路由到这两个 Queue 中。 对于mq我比较常用的是RabbitMQ在市面上来说(上海)Rabbit使用的还是比其它的几种使用的还是比较多的,我感觉第一点是因为rabbit是真的牛逼,第二点就是在公司选型的时候上海这边对于rabbit有什么特别的热爱,为什么我会这样说呢就比如那我遇到的一个例子吧,我在上海MySQL比较多但是在北京MySQL就不是那么多反而oracle在北京的使用比mysql多不少,在技术的选型上更多的是我们的架构师和我们的项目经理对这个项目的的分析,第一个是不是高并发的软件,如果是用户数量比较多的话rabbitmq就会别选择,如果用户并不是那模多我们就可以选择中规中举的ActiveMQ了,对于我们下属来说我们要做的是做好本质工作,有些事情不是我们考虑,或者来说是我们考虑不明白的,我们不会去考虑高并发高可用高性能这写,加油吧