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

相关推荐
wdfk_prog1 小时前
构建基于Hexo、Butterfly、GitHub与Cloudflare的高性能个人博客
笔记·学习·github·hexo·blog
shixian10304111 小时前
Django 学习日志
数据库·学习·sqlite
丰锋ff3 小时前
2013 年真题配套词汇单词笔记(考研真相)
笔记·学习·考研
小小程序媛(*^▽^*)3 小时前
第十二届全国社会媒体处理大会笔记
人工智能·笔记·学习·ai
毕设源码-邱学长3 小时前
【开题答辩全过程】以 爱学习教育网站为例,包含答辩的问题和答案
学习
Yupureki4 小时前
从零开始的C++学习生活 5:内存管理和模板初阶
c语言·c++·学习·visual studio
程序员Aries4 小时前
从零开始实现一个高并发内存池_DayThree:内存池整体框架与ThreadCache、TLS无锁访问
c++·学习·单例模式
Ethan learn English4 小时前
汽车零部件英语词汇 | 3000 最常用单词系列
笔记·学习·汽车·生活·英语·可理解性输入
好奇龙猫4 小时前
日语学习-日语知识点小记-进阶-JLPT-N1阶段应用练习(7):语法 +考え方20+2022年7月N1
学习
charlie1145141914 小时前
Windows 10 系统编程——线程专题1
c++·windows·学习·线程