MQ/Kafka 消息处理

大数据量/消息处理问题/MQ消息堆积

第一步:采用kafka做一下接口,然后分散到各个业务线的MQ中

第二步:MQ拿到数据后,如果数据量还是很大,采用线程池处理

第三步:增大消费者节点,比如一个节点可以同时有50个线程,那么就可以迅速消费50条消息;如果消费者节点有20个,那么同时就可以迅速消费1000条消息

防止MQ消息丢失

1、投递失败导致丢失:开启Confirm机制,分配唯一ID,获取ACK消息判断是否投递成功;利用try-catch机制设置兜底策略

2、持久化失败导致丢失:通过唯一ID监控,消息是否被正常投递或者消费,如果没有,可以通过人工干预,重新投递

3、消费失败导致丢失:利用try-catch机制设置兜底策略

重点:在消息处理的过程中,日志异常重要,我们需要通过日志和监控观察消息是否被正常投递/消费

防止MQ消息堆积

增大消费者节点,开启线程池;比如一个节点可以同时有50

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

八股文+场景题+算法真题 文章被收录于专栏

针对Java简历中项目的功能进行提问,大家可以在评论区中解答/讨论;同时提供八股文

全部评论

相关推荐

07-19 16:04
已编辑
广州大学 golang
面试公司:安克创新(深圳)面试岗位:Golang实习生面试过程:一面(40min)面试总结:基本上是围绕着实习时做的短信项目问的,还问了几个人生哲理问题(doge面试问题:    1. 为 gin 设计的限流的 middleware 是怎么实现的?有没有思考比滑动窗口更好的实现方式?    2. 实习期间维护的短信服务项目,你是如何实现第三方容错,提高可用性的?(我项目中是用“轮询、动态判定服务商状态、限流、同步转异步”实现的)    3. 为什么想到要用数据库的行级锁实现异步发送短信?它和 kafka 的区别是什么?    4. 你是否熟悉 kafka 的各种组件?kafka 的高性能、高可用和高扩展性是如何体现的?    5. 有没有看过 kafka 的源码?    6. 说一下你常用的redis数据结构,以及应用场景=========下面是人生哲理以及其他问题=============    7. 你是怎样学习一个东西的?    8. 你最近有看什么书,有什么值得分享的收获?    9. 何时能到岗,硕士论文进展如何,人在广州么?反问:    1. 您所在的是p2p安全部门?主要是消费电子类产品的研发?    2. 研发工作要联动的产品、测试等部门氛围、沟通如何?    3. 目前团队用的技术栈有哪些?总体感觉:    虽然面试官迟到了5min(解释说是上午10.30会议室都被占用了),但语气挺和蔼的,也没有问很细节很刁钻的问题,还说有问题可以随时跟他联系。#面经##安克##后端##golang##日常实习#
查看6道真题和解析
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务