kafka基本信息介绍
kafka特点
分布式
- 多分区
- 多副本
- 多订阅者:注:订阅者的数量<=partition的数量
- 基于zookeeper的调度
高性能
- 高吞吐量
- 高并发
- 低延迟
- 时间复杂度为O(1)
持久性和扩展性
- 数据可持久性
- 容错性
- 支持在线水平扩展(topic有1或多的partition;consumer group的划分;服务器增加,也就是broker增加)
- 消息自动平衡(避免服务端消息过于集中在某几个服务器,数据导致频繁访问这几台服务器,从而产生热点问题;通过消息在服务器间的平衡和消费者订阅时连接的平衡实现)
kafka应用场景
- 消息队列
- 行为跟踪
- 元信息监控
- 日志收集(elk等)
- 流处理
- 事件源
- 持久性日志
结构图
kafka提供了四类API
kafka作为消息队列的数据运作流程:
kafka依赖于zookeeper:
1、broker信息 存在zookeeper中
2、topic和partition的分布,也存在zookeeper上
zookeeper通过订阅kafka的消息,来获取到kafka信息的变更通知
kafka的消息结构
offset:消息的偏移量
length:消息的长度
CRC32: 校验信息的完整性,避免信息消费的不完整性导致生产或消费失败
magic:是一个固定的数字,kafka通过这个字段,可以快速判断是不是kafka消息
attribute:可选,一位,放当前消息的属性,枚举型
timestamp:时间戳
key length:key长度
key:key的值
value length:value的长度
value:value的值
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤