前言
RabbitMq大家再熟悉不过,这篇文章主要整对rabbitmq学习后封装RabbitMQ.Client的一个分享。文章最后,我会把封装组件和demo奉上。
Rabbitmq的关键术语
1、绑定器(Binding):根据路由规则绑定Queue和Exchange。
2、路由键(Routing Key):Exchange根据关键字进行消息投递。
3、交换机(Exchange):指定消息按照路由规则进入指定队列
4、消息队列(Queue):消息的存储载体
5、生产者(Producer):消息发布者。
6、消费者(Consumer):消息接收者。
Rabbitmq的运作
从下图可以看出,发布者(Publisher)是把消息先发送到交换器(Exchange),再从交换器发送到指定队列(Queue),而先前已经声明交换器与队列绑定关系,最后消费者(Customer)通过订阅或者主动取指定队列消息进行消费。
那么刚刚提到的订阅和主动取可以理解成,推(被动),拉(主动)。
推,只要队列增加一条消息,就会通知空闲的消费者进行消费。(我不找你,就等你找我,观察者模式)
拉,不会通知消费者,而是由消费者主动轮循或者定时去取队列消息。(我需要才去找你)
使用场景我举个例子,假如有两套系统 订单系统和发货系统,从订单系统发起发货消息指令,为了及时发货,发货系统需要订阅队列,只要有指令就处理。