Kafka基本知识
快速认识Kafka
Kafka是最初由Linkedin公司开发,用作 Linkedin 的活动流(Activity Stream)和运营数据处理管道的基础。Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目,官方的定义Kafka是一个高吞吐量的分布式流处理平台。Kafka由Scala和Java编写。
官网:http://kafka.apache.org/
主要应用场景:日志收集、消息系统、用户活动跟踪、大数据实时计算等
优点:
- 高吞吐量、低延迟: 每秒可以处理几十万条消息
- 高并发:几千个客户端同时读写
- 容错性:多副本、多分区,允许集群中节点失败,如果副本数据量为n,则可以n-1个节点失败
- 扩展性强:支持热扩展,Kafka集群启动运行后,可以直接向集群添加节点
Kafka核心概念
Broker
一个Broker可以看作是一个Kafka服务节点或Kafka服务实例
一个 Broker可以容纳多个 topic
一组Broker组成了Kafka集群
Broker 有两种角色:Controller 和 Follower
Producer生产者
Producer即生产者,消息的产生者。生产者负责创建消息,然后将其投递到Kafka中
Consumer消费者
消费者,也就是接收消息的一方。消费者连接到Kafka上并接收消息,进而进行相应的业务逻辑处理
ConsumerGroup消费者组
消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
消费者组是Kafka提供的可扩展且具有容错性的消费者机制。
基于消费者组可以实现:
基于点对点模型:所有消费者都在同一消费者组里,每条消息只会被一个消费者处理
基于发布订阅模型:消费者属于不同的消费者组,假如每个消费者都有自己的消费者组,这样Kafka消息就能广播到所有消费者实例上
Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic,主题的意思,一个主题就是对消息的一个分类。Topic是一个消息的逻辑分类。
- 每条消息属于且仅属于一个Topic
- Producer发布数据时,必须指定将该消息发布到哪个Topic
- Consumer消费消息时,也必须指定消费哪个Topic的信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具