RabbitMQ实战
文章平均质量分 92
RabbitMQ实战
HymanLiuTS
年过而立,又酸又臭,忙时敲代码,闲时读书写文章。
展开
-
RabbitMQ消息队列实战(5)—— 发后即忘和远程RPC数据传输模型
本文主要介绍了RabbitMQ发后即忘和远程RPC调用两种数据发送模型,现总结如下:(1)发后即忘数据发送模型针对发送的信息生产者不关心对方的处理结果这一业务前提实现,实现起来比较简单,但是需要注意发送消息时应该采用异步发送,避免消息的发送影响业务。(2)如果需要等待消费者的返回结果,应该采用远程RPC调用数据发送模型。原创 2023-05-10 21:30:00 · 906 阅读 · 1 评论 -
RabbitMQ消息队列实战(4)—— spring-boot-starter-amqp中消息的可靠性传输和确认机制
下面,针对本文的内容进行总结:(1)spring-boot-starter-amqp中,针对生产者端或者消费者端连接不到broker的IOException异常和TimeoutException异常,重新封装了新的异常类型AmqpConnectException异常。(2)生产者发送消息时如果交换机不存在,会抛出ShutdownSignalException异常。原创 2023-04-12 21:45:00 · 1688 阅读 · 1 评论 -
RabbitMQ消息队列实战(3)—— RabbitMQ中消息的可靠性传输和确认机制
如果我们进行手动ack,则完全可以做到先处理好业务,最后再去ack,这样在业务处理时,由于上一个消息没有ack,即使队列中有新消息,broker也不会再发送给当前的消费者。并不建议使用这种主动获取消息的方式来读取消息,实际上在basicGet内部所调用的是rabbitmq获取消息的get命令,而这个get命令内部又包含了订阅消息和取消订阅两个过程,也就是说每一次get,都伴随着订阅和取消订阅两个过程,造成了极大的资源浪费。也就是说,消息发送后,不管消息有没有到达,生产者都不会管,也不会重试。原创 2023-03-06 22:15:00 · 1584 阅读 · 0 评论 -
RabbitMQ消息队列实战(2)—— Java调用RabbitMQ的三种方式
spring cloud stream的强大之处就在于它的封装,但是不足之处也在于它的封装,封装的太强,必然增加了学习成本和调试难度,而且类似RabbitMQ和Kafka这种中间件的使用,一般在系统创建之处就一定确定,进行无缝切换就显得有些鸡肋了。第5个参数是队列的一些结构化信息,比如声明死信队列、磁盘队列会用到。第12行,创建了一个bind对象,将交换机和队列进行绑定,queueBind的三个参数中:第1个参数指定了队列名称,第2个参数指定了交换机名称,第3个参数是路由键,在直连模式下为队列名称。原创 2023-02-01 19:30:00 · 5446 阅读 · 1 评论 -
RabbitMQ消息队列实战(1)—— RabbitMQ的体系
中间经历过数个阶段的发展,一直到2004年,AMQP(Advanced Message Queuing Protcol)协议开发完成,这是一款具有开放标准的通信协议,它允许任何人都可以执行这一标准,编码标准的任何人都可以和任何AMQP供应商提供的MQ服务器进行交互。本文主要介绍RabbitMQ的逻辑体系结构,先是简单介绍其整个体系架构以及相关名词的介绍,然后介绍RabbitMQ三种消息路由的方式(因第四种Header模式基本不会使用,这里不包括在内),最后介绍其典型的应用场景。接下来,我们分别进行介绍。原创 2023-01-16 18:20:00 · 1348 阅读 · 0 评论