kafka是消息中间件
为什么什么用kafka
1.service 到service 强一致性 2.service -> 消息中间件(分布式、可靠性、可扩展、高性能) -> service可以3.消息中间件:解耦、削峰、填谷,消息中间件会有1.单点问题、2.性能问题
AKF
x轴 集群: 1.副本 2. 读写分离 y轴 topic z轴 partition : 1.分区内部有序、2.分区外部无序 只要是集群,就需要协调,就需要用到zookeeper的分布式协调 kafka1.0以前元数据在zk,1.0以后元数据在kafka(每个broker都有一份metadata),既client连接kafka,不在连接zk
kafka一些知识点
1.produce生产数据到kafka的broker的对应分区中 2.数据的重复利用是站在Group上的:消费者有分组概念,比如A组消费的数据进入mysql,B组的数据进入ES 3.partition和组内的consumer 关系: 1:1 或者N:1 不能1:N 因为不保证顺序性。 4.topic 的runtime内存维护了自己的offset(偏移量进度),需要持久化: topic自己维护offset,单独开了一个分区用来存储
在consumer消费的时候回出现数据的丢失和重复消费,请问怎么解决呢?
维护好各自分区内的offset 1.默认是异步保存,5s保存一次。a.如果先干活,持久化offset失败了,则重复消费。b.持久化offset成功了,干活失败,则丢失数据。 解决办法: 1.同步消费,业务操作控制offset持久化 a.单条消费:同步更新offset b.批量消费:批量数据 + 事务,更新最后一条offset
注意: offset是按分区粒度进行的。
标签:
Kafka
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人