参考官网文档 http://kafka.apache.org/intro
一.概要
Kafka是一个分布式流媒体平台
流媒体平台有三个关键功能:
- 它可以让您发布和订阅记录流。在这方面,它类似于消息队列或企业消息系统。
- 它允许您以容错方式存储记录流。
- 它可以让您处理记录流。
- Kafka作为一个或多个服务器上的集群运行。
- 卡夫卡群集将名为主题的类别的记录流存储起来。
- 每个记录由一个键,一个值和一个时间戳组成。
1:Produce API 允许应用程序发布的记录流至一个或多个卡夫卡的话题
2:Consumer API 允许应用程序订阅一个或多个主题,并处理所产生的对他们记录的数据流
3:Stream API允许应用程序充当流处理器,从一个或多个主题消耗的输入流,并产生一个输出流至一个或多个输出的主题
,有效地变换所述输入流,以输出流
4:Connector API 允许构建和运行卡夫卡主题连接到现有的应用程序或数据系统中重用生产者或消费者
二.Topics和 Logs
上图可以看见一个topic可以有多个consumer去订阅数据并写入数据
每一个Partition里面的有顺序的数字是offset
三.Distribution
日志的partitions分布在集群上以实现容错
每个partition有一个server充当leader,其他是followers。
如果leader failed,则由其中一个followers充当leader。
三.Producers
Producers负责选择将哪一条记录哪个主题的哪个Partition,以平衡各个部分的负载
四.Consumers
如上图,两个Kafka server 上有一个Topic的4个Partition
Consumer Group A 有两个Consumer
Consumer Group B 有四个Consumer
在一个Group内,Partition 被平衡分配
----------------------------------------------------------------------------待更-------------------------------------------------------------------------------------------------