RabbitMQ
文章平均质量分 62
rabbitmq 队列
架构小闻闻
点点关注吧
展开
-
幂等性。。
如果多次投递到消费者,消息可能重复消费,消费者使用数据库的乐观锁机制。消费者消费多条相同的消息,每次结果都应当与第一次的相同。消费者使用乐观锁机制,版本号。原创 2024-09-06 00:20:43 · 450 阅读 · 0 评论 -
消息补偿。
如果正常情况,生产者投递消息到队列,消费者监听队列消费,那就万事大吉,但是有很多不可控原因,网络波动,程序异常,等等,导致不是每次都正常投递消费,所以我们要做到消息可靠投递消费,采用消息补偿机制。原创 2024-09-06 00:20:03 · 678 阅读 · 0 评论 -
延迟队列。
消息进入队列不会被立即消费,过指定时间后再消费。原创 2024-09-06 00:19:29 · 228 阅读 · 0 评论 -
死信队列.
DLX(eadetterxchange)死信交换机:当一个队列里的消息成为死信时,会将这些消息发送到另外一个队列,这个另外的一个队列就是被人为的规定为,其实就是一个普通的队列,由于 RabbitMQ 是通过交换机来绑定队列的,所以死信队列在 RabbitMQ 里就是指死信交换机。原创 2024-09-06 00:18:51 · 243 阅读 · 0 评论 -
TTL 超时删除
假设队列的过期时间30秒,消息过期时间5秒,如上述示例,偶数使用队列的过期时间,奇数使用消息单独设置时间,由于奇数并不在队列顶端,所以奇数消息可能过期了,但是控制台查看还是 10 条,可以将队列设置成 60 秒过期,消息设置成 10 秒过期,不停手动刷新,较为容易的查看效果,或者直接点开控制台查看每条消息。如果每秒都遍历所有的消息,查看是否过期,那么对性能的损耗较大,收益较小,RabbitMQ 会将队列的顶端的消息去判断是否过期,如果过期了就删除。当既设置了队列的过期时间,又设置了消息单独的过期时间,原创 2024-09-05 15:20:45 · 423 阅读 · 0 评论 -
队列过长删除
/</</原创 2024-09-05 15:19:54 · 439 阅读 · 0 评论 -
消费端限流
假设队列里有 1000条消息,当消费者承受不住这么多消息同时消费,所以进行限流,每次只拉取 100 条,消费完之后再消费下 100 条。原创 2024-09-05 15:18:57 · 389 阅读 · 0 评论 -
消息消费回执
【代码】消息消费回执。原创 2024-09-05 15:08:48 · 461 阅读 · 0 评论 -
消息可靠投递
消息从生产者投递交换机,交换机给生产者一个响应,生产者收到肯定应答,才能保证消息成功投递到交换机,但是如果没有设置持久化,这时候交换机断电重启,仍然丢失,需要做到以下3个方法才能保证可靠投递到交换机。批量确认:简单,吞吐量比单条确认高,当一批消息中有一个出问题,不知道是哪一个。生产者投递一个消息,交换机回应,生产者确认之后再发布下一个,吞吐量很低。发布批量消息之后,等待,当有某一个故障的时候,不知道是哪个消息出问题。在 Publish/Subscribe 基础之上整合。异步批量确认:代码复杂,吞吐量高。原创 2024-09-05 15:08:18 · 1369 阅读 · 0 评论 -
SpringBoot整合RabbitMQ
配置文件常量类配置类使用测试浏览器输入 http://localhost:8080/test/send/zhangsan查看 RabbitMQ 控制台配置文件常量类消费多个消费者一般是在不同的服务器上,处理不同的业务逻辑处理,前面的配置都是一样的邮件类RabbitListener测试使用生成者再生成几条消息,查看效果生产者要配置消费者也要配置需要导入依赖,如果引入了 spring-boot-starter-web 依赖,就不要再引入了,web 的起步依赖里已经引入了原创 2024-09-05 15:07:37 · 541 阅读 · 0 评论 -
工作模式小结
工作模式小结简单队列HelloWorld工作队列Work Queues轮询一人一个公平能者多劳发布订阅Publish/Subscribefanout 广播路由模式Routingdirect 定向主题模式Topicstopic 通配符RPC远程调用原创 2024-09-05 15:06:57 · 145 阅读 · 0 评论 -
5主题模式
在动物的世界中可以按照多纬度区分按照颜色区分:有橙色的,有红色的按照物种区分:有老虎,有兔子按照速度区分:有敏捷 quick,有慢吞吞的 lazy如果有2个消费者一个消费者是对所有橙色的动物感兴趣一个消费者想听听有关兔子的新闻,以及慢动作动物的新闻。原创 2024-09-05 15:05:36 · 303 阅读 · 0 评论 -
4 路由模式
如果我们将生产环境的日志进行处理,而日志是分等级的,我们就按照 error waring info三个等级来讲解一个消费者是处理【所有】(info,error,warning)的日志,用于做数据仓库,数据挖掘的一个消费者是处理【错误】(error)日志,用以检测生产环境哪里有bug的如果有一条 error 的日志,它应当既发送给【所有】,又发送给【错误】如果有一条 info 的日志,它应当只发送给【所有】如果有一条 warning 的日志,它应当只发送给【所有】原创 2024-09-05 15:05:05 · 468 阅读 · 0 评论 -
3发布订阅
之前的简单队列和工作队列,生产者是直接将数据投递到队列里以工作队列为例,2个消费者之间的代码是相同的,处理的是同一个业务逻辑,如果不同的业务逻辑都用到同一份数据怎么办?添加交换机的角色。原创 2024-09-05 15:04:30 · 449 阅读 · 0 评论 -
2工作队列
/</</原创 2024-09-05 15:03:58 · 1192 阅读 · 0 评论 -
1简单队列
/</</原创 2024-09-05 15:03:11 · 181 阅读 · 0 评论 -
Window安装RabbitMQ
因为 RabbitMQ 是基于 Erlang 语言开发的,所以需要先安装 Erlang 的运行环境。原创 2024-09-05 15:01:51 · 420 阅读 · 0 评论 -
RabbitMQ简介
RabbitMQ简介。原创 2024-09-05 15:01:20 · 1183 阅读 · 0 评论