Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的、多副本的,基于zookeeper协调的分布式消息系统。
它最大的特性就是可以实时处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志、消息服务等等。
Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
01 kafka的定义和特征
Kafka是一个分布式的基于发布/订阅模式的消息队列,主要用来解决应用解耦、异步消息、流量削峰等问题。
3个特点:
- 类似消息系统,提供事件流的发布和订阅,即具备数据注入功能
- 存储事件流数据的节点具有故障容错的特点,即具备数据存储功能
- 能够对实时的事件流进行流式地处理和分析,即具备流处理功能
02 Kafka的架构
![bbc8811aa375caddc885724069aab293.png](https://img-blog.csdnimg.cn/img_convert/bbc8811aa375caddc885724069aab293.png)
- Producer:消息生产者,就是向 kafka broker 发消息的客户端
- Consumer:消息消费者,就是向 kafka broker 取消息的客户端
- Broker :一台 kafka 服务器就是一个 broker。一个集群由多