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多路复用、顺序读写、压缩批处理

相关推荐
西岸行者3 小时前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 小时前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 小时前
嵌入式学习路线
学习
毛小茛7 小时前
计算机系统概论——校验码
学习
babe小鑫7 小时前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms8 小时前
ROS2知识大白话
笔记·学习·ros2
在这habit之下8 小时前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。8 小时前
2026.2.25监控学习
学习
im_AMBER8 小时前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J8 小时前
从“Hello World“ 开始 C++
c语言·c++·学习