MQ/Kafka 消息处理
1、大数据量/消息处理问题/MQ消息堆积
第一步:采用kafka做一下接口,然后分散到各个业务线的MQ中
第二步:MQ拿到数据后,如果数据量还是很大,采用线程池处理
第三步:增大消费者节点,比如一个节点可以同时有50个线程,那么就可以迅速消费50条消息;如果消费者节点有20个,那么同时就可以迅速消费1000条消息
2、防止MQ消息丢失
1、投递失败导致丢失:开启Confirm机制,分配唯一ID,获取ACK消息判断是否投递成功;利用try-catch机制设置兜底策略
2、持久化失败导致丢失:通过唯一ID监控,消息是否被正常投递或者消费,如果没有,可以通过人工干预,重新投递
3、消费失败导致丢失:利用try-catch机制设置兜底策略
重点:在消息处理的过程中,日志异常重要,我们需要通过日志和监控观察消息是否被正常投递/消费
3、消费者处理MQ消息会有什么隐患
1、线程池是否会造成消息丢失?--多线程/线程池使用中有解决方案
2、消息被重复消费
4、 防止MQ消息重复消费
1
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
八股文+场景题+算法真题 文章被收录于专栏
Java全新整理八股文 + 场景题 + 算法 精心设计,面试命中率超过80% 专栏优势: 1、问题和答案已经整理到位,答案更专业,可以直接回答,不需要额外总结! 2、场景题讲解清晰,适用于大部分场景的项目,并且持续更新中 3、分享学习心得【知识点的广度和深度,算法有哪些坑,如何准备面试等等】