9.30学习

1.如何保证顺序消费

●单 topic,单partition,单 consumer,单线程消费,吞吐量低,不推荐

●如只需保证单key有序,为每个key申请单独内存 queue,每个线程分别消费一个内存 queue 即可,这样就能保证单key(例如用户id、活动id)顺序性。

2.(线上)如何解决积压消费

●修复consumer,使其具备消费能力,并且扩容N台

●写一个分发的程序,将Topic均匀分发到临时Topic中

●同时起N台consumer,消费不同的临时Topic

3.如何避免消息积压

●提高消费并行度

●批量消费

●减少组件IO的交互次数

●优先级消费

4.如何设计消息队列

需要支持快速水平扩容,broker+partition,partition放不同的机器上,增加机器时将数据根据topic做迁移,分布式需要考虑一致性、可用性、分区容错性

●一致性:生产者的消息确认、消费者的幂等性、Broker的数据同步

●可用性:数据如何保证不丢不重、数据如何持久化、持久化时如何读写

●分区容错:采用何种选举机制、如何进行多副本同步

●海量数据:如何解决消息积压、海量Topic性能下降

性能上,可以借鉴时间轮、零拷贝、IO多路复用、顺序读写、压缩批处理

相关推荐
solicitous15 小时前
第二章 信息技术发展
学习
im_AMBER15 小时前
Leetcode 70 好数对的数目 | 与对应负数同时存在的最大正整数
数据结构·笔记·学习·算法·leetcode
hd51cc17 小时前
MFC消息 学习笔记
笔记·学习·mfc
盐焗西兰花1 天前
鸿蒙学习实战之路:状态管理最佳实践
学习·华为·harmonyos
小毅&Nora1 天前
【人工智能】【深度学习】 ⑦ 从零开始AI学习路径:从Python到大模型的实战指南
人工智能·深度学习·学习
Maxwell_li11 天前
Pandas 描述分析和分组分析学习文档
学习·数据分析·numpy·pandas·matplotlib
雷工笔记1 天前
MES学习笔记之SCADA采集的数据如何与MES中的任务关联起来?
笔记·学习
繁星星繁1 天前
【C++】脚手架学习笔记 gflags与 gtest
c++·笔记·学习
Lovely Ruby1 天前
前端er Go-Frame 的学习笔记:实现 to-do 功能(三),用 docker 封装成镜像,并且同时启动前后端数据库服务
前端·学习·golang
YJlio1 天前
SDelete 学习笔记(9.18):安全删除、空闲清理与介质回收实战
笔记·学习·安全