AMQP基本概念

主要概念

  • Exchange

  • Bindings

  • Queues
    图片描述

与JMS的区别

  • JMS虽然有抽象出Destination,但是具体编程的时候,需要使用者指定是Queue还是Topic。

  • AMQP,通过Exchange屏蔽了queue和topic的细节。

消息路由

简单的说就是借助Exchange通过routingKey和binding两个的组合使用实现message与queue的路由。

  • 仅仅使用routingKey,不需要exchange与queue绑定,就是direct模式

  • 不是用routingKey,使用exchange与queue的绑定,就是Fanout模式

  • 既使用routingKey,又使用Exchange与Queue的绑定,就是Topic模式,较为复杂,可以基于bindingKey的规则匹配过滤/指定要接收发送到绑定的exchange上的不同routingKey的消息。

Exchange模式

具体是通过指定Exchange的方式,来实现点对点还是订阅发布模式:

Topic

就是主题模式,需要routingKey,也需要绑定Queue,根据绑定的routingkey来发送
图片描述

Fanout

不需要routingKey,需要Exchange与Queue绑定
图片描述

direct模式

需要routingKey,不需要Exchange与Queue绑定,直接根据routingKey发送
图片描述

AMQP消息格式

图片描述


code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.8k 声望
2k 粉丝
0 条评论
推荐阅读
2022年终总结
最近两年开始陷入颓废中,博客也写的越来越少了。究其原因,主要还是陷入了职业倦怠期,最近一次跳槽感觉颇为失败,但是碍于给的薪资高,为了五斗米折腰,又加上最近行情不好,想要往外跳也跳不了,就这样子一直...

codecraft阅读 698

rabbitMQ编译安装
rabbitmq从3.3.0开始禁止使用guest/guest权限通过 除localhost外的访问 使用下面创建的admin/123456登录

阿亮说技术阅读 779

kombu 创建优先队列并支持消息优先级
rabbitmq 里面,队列中的message是不分优先级的,只会先进先出,哪怕是 publish 的时候,给 message 带上 priority 也是一个摆设

ponponon阅读 695

RabbitMQ、RocketMQ、Kafka延迟队列实现
延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一条延迟消息,达到延迟时间之后消费者收到消息,如果订单没有支付的话,那么就取消订单。

艾小仙阅读 606

kombu 维护消费者心跳
单线程对于只有一个进程一个线程一个 amqp 连接的情况我们开了一个连接用来任务消费,这个时候,我们需要一个『后台』来帮我们维护 amqp 的心跳怎么实现这个『后台』呢?选择其实很多,比如:线程eventlet 协程ge...

ponponon阅读 510

RabbitMQ在Windows环境下安装及搭配PHP的基础用法
是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不...

IT小马阅读 492

腾讯云消息队列产品10月产品动态
【商业化】消息队列 RocketMQ 版专享集群正式商业化。基于开源RocketMQ打造,兼容社区SDK,具有低延迟、高性能、高可靠、万亿级消息吞吐等特点。专享版于 5 月开始在外部客户侧进行白名单开放和打磨,已经在多个...

腾讯云中间件阅读 322

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.8k 声望
2k 粉丝
宣传栏