RabbitMq知识

RabbitMq知识,第1张

RabbitMq知识 一.Rabbitmq的队列模型

P代表生产者,Q代表队列,C代表消费者,E代表交换机

1.直连队列模式(hello world队列),P直连Q连C(1对1),生产者直连单个队列,一个队列连接一个消费者

P->Q->C

  • ps:在helloword模式中,生产端指定的routingKey:helllo,这里指定的是路由规则,而不是hello队列。队列是在消费方生成的,其实是这样的,生产端没有指定交换机只有routingKey和Object,也就是说这个消费方产生hello队列,放在默认的交换机(AMQP
    default)上。而默认的交换机有一个特点,只要你的routerKey与这个交换机中有同名的队列,他就会自动路由上。
    生产端routingKey 叫hello ,消费端生产hello队列。他们就路由上了

2.直连队列模式(工作队列),P直连Q1连C1,P直连Q2连C2(1对多),生产者直连多个队列,每个队列连接着一个消费者

P->Q1->C1
P->Q2->C2

3.交换机模式(广播模式,routingKey无用,fanout),P连接E,E通过连接Q1/Q2给C1/C2输送消息,生产者不直接连接队列,而是连接交换机,通过交换机来路由多个(临时的,且是由消费者生成的队列)队列,交换机来连接多个队列来给消费者发送消息。

P->E->Q1->C1
P->E->Q2->C2

4.交换机模式(路由模式,路由键《routingKey》准确匹配 ,生产者发送对应routingKey的消息,而绑定了某种(或者多种)routingKey的消*费者获取该种类型的消息,direct),P连接E,E通过连接Q1/Q2/Q3给C1/C2/C3输送消息,但是连接队列时,是通过对应的routingKey来的做匹配,如果生产者发送的是填写的routingKey是error类型的日志,那就发送这个类型的日志给Q1和Q3队列,Q2接受不到,因为Q2接受的日志类型是info。

P->E->(routingKey=“error”)->Q1->C1
P->E->(routingKey=“info”)->Q2->C2
P->E->(routingKey in (“info”,“error”,“wangring”))->Q3->C3

5.交换机模式(路由模式,路由键《routingKey》模糊匹配,生产者发送对应routingKey的消息,该种routingKey是可以使用通配符来做模糊匹配的,而绑定了某种(或者多种)routingKey的消费者获取该种类型的消息,topic),具体原理和上面的第四种模型相似,但是routingKey变成了模糊匹配,通过星号和#号。星号只可以匹配一个字符,而#号则可以匹配多个字符。

P->E->(routingKey=“log.*”)->Q1->C1
P->E->(routingKey=“log.#”)->Q2->C2

6.RPC模型
7.发布订阅确认

二.交换机

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5683091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存