以下内容大多是学习链接,他人整理,个人收藏以便复习,同时归纳分享出来(如有不妥,原作者可随时联系本人删除,感谢!)
九、消息队列
1、消息中间件部署及比较:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redis:
消息队列Kafka、RocketMQ、RabbitMQ的优劣势比较 - 知乎
2、kafka的一些基本概念:
Kafka的生成者、消费者、broker的基本概念_u010020099的专栏-CSDN博客_broker
3、kafka:topic为什么要进行分区?副本机制是如何做的?
kafka:topic为什么要进行分区?副本机制是如何做的?_不花的花和尚的博客-CSDN博客_kafka partition作用
4、Kafka生产者ack机制剖析
Kafka生产者ack机制剖析_jmx_bigdata的博客-CSDN博客
5、Spring Boot 整合——kafka消费模式AckMode以及手动消费
Spring Boot 整合——kafka消费模式AckMode以及手动消费_大风的博客-CSDN博客
Kafka如何保证消息的顺序性 - windpoplar - 博客园
kafka如何保证数据的顺序消费_QvQ-CSDN博客_kafka如何保证消息顺序消费
7、kafka消费者端消费消息:
Kafka消费者:从Kafka中读取数据_珍惜-CSDN博客_kafka消费者
8、解析Kafka消费者——提交和偏移量
Kafka 消息确认机制 保证不丢失及手动确认消息_Doub1's Blog-CSDN博客_kafka消息确认机制
9、kafka消费者端如何优雅退出:
10、Kafka如何保证百万级写入速度已经保证不丢失不重复消费
Kafka如何保证百万级写入速度已经保证不丢失不重复消费 - 云+社区 - 腾讯云
Kafka学习之怎么保证不丢,不重复消费数据_u010627840的专栏-CSDN博客
04、如何保证消息队列中的消息不被重复消费_一诺-CSDN博客_消息队列保证消息不重复消费
Kafka学习之怎么保证不丢,不重复消费数据_u010627840的专栏-CSDN博客
掘金https://juejin.cn/post/6999572991340183588
11、kafka消息重试:
kafka消息重试_祈雨v的博客-CSDN博客_kafka 重试
12、黑马程序员大数据教程企业级消息队列Kafka
Kafka教程(kafka框架快速入门)_哔哩哔哩_bilibili
13、Kafka常见面试题
Kafka常见面试题_徐周的博客-CSDN博客_kafka面试题
14、Java面试突击系列(一):消息队列的面试连环炮
Java面试突击系列(一):消息队列的面试连环炮_Viper的程序员修炼手册-CSDN博客
15、Spring Boot 整合 RocketMq
16、rocketmq怎么保证队列完全顺序消费?
17、2020黑马——消息中间件RabbitMQ(视频):
18、消息队列设计精要(美团技术博客)
19、RabbitMQ,exchange模式:
rabbitMQ 中三种常用交换机:direct、topic、fanout的使用以及区别_三婶儿的博客-CSDN博客_rabbitmq fanout direct topic
RabbitMQ的四种ExChange_Danna_Danna的博客-CSDN博客_exchange rabbitmqRabbitMQ 理解 Exchange - 简书 (jianshu.com)
20、RabbitMQ死信队列
死信队列介绍:
死信队列:DLX,dead-letter-exchange
利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish
到另一 个Exchange,这个Exchange就是DLX
消息变成死信有以下几种情况:
消息被拒绝(basic.reject / basic.nack),并且requeue = false
消息TTL过期
队列达到最大长度
死信处理过程:
DLX也是一个正常的Exchange,和一般的Exchange没有区别,
它能在任何的队列上被指定,实际上就是设置某个队列的属性。
当这个队列中有死信时,RabbitMQ就会自动的将这个消息重新发布到设置的Exchange 上去,进而被路由到另一个队列。可以监听这个队列中的消息做相应的处理。
Rabbitmq 配置死信队列_恰柠檬。的博客-CSDN博客
RabbitMQ死信队列_半桶水的码农的博客-CSDN博客_rabbitmq死信队列
21、Rabbit mq 防止消息丢失:
如何防止rabbitmq消息丢失_俊哥66的博客-CSDN博客
详细讲解!RabbitMQ如何防止数据丢失,看这篇就够了! - 知乎 (zhihu.com)
22、Rabbit mq 消费顺序问题:
解决方案:
一个Queue对应一下Consumer,把需要保证顺序的message都发送到一个Queue当中,关闭autoack,prefetchCount=1,每次只消费一条信息,处理过后进行手工ack,然后接收下一条message,只是由一个Consumer进行处理。
多数业务场景下,可以做局部顺序,创建多个队列,同一业务id的消息发送到同一个消息队列,这样队列数增加,消费者数量也会增加 了。
拆分多个Queue,每个Queue一个Consumer,就是多一些Queue而已。
RabbitMQ和Kafka如何保证消息顺序执行? - 腾讯云开发者社区-腾讯云 (tencent.com)
23、RabbitMQ 的 exchange/routingkey/queue关系