初识Kafka
ApacheKafka
apache kafka是一个分布式流媒体平台
流媒体平台有三个关键功能:
- 发布和订阅记录流,类似于消息队列或企业消息传递系统。
- 以容错的持久方式存储记录流。
- 记录发生时处理流。
Kafka通常用于两大类应用:
- 构建可在系统或应用程序之间可靠获取数据的实时流数据管道
- 构建转换或响应数据流的实时流应用程序
要了解Kafka如何做这些事情,让我们深入探讨Kafka的能力。
首先是几个概念:
- Kafka作为一个集群运行在一个或多个可跨多个数据中心的服务器上。
- Kafka集群以称为主题的类别存储记录流。
- 每条记录都包含一个键,一个值和一个时间戳。
Kafka有四个核心API:
- 该生产者API允许应用程序发布的记录流至一个或多个卡夫卡的话题。
- 该消费者API允许应用程序订阅一个或多个主题,并处理所产生的对他们记录的数据流。
- 所述流API允许应用程序充当流处理器,从一个或多个主题消耗的输入流,并产生一个输出流至一个或多个输出的主题,有效地变换所述输入流,以输出流。
- 该连接器API允许构建和运行卡夫卡主题连接到现有的应用程序或数据系统中重用生产者或消费者。例如,关系数据库的连接器可能捕获对表的每个更改。
------以上信息摘自官方文档翻译版
Kafka消息模式理解
如图所示
队列模式一、1、生产者们将数据发送已topic(主题)到kafka集群中。
2、消费者订阅topic主题消费组、Groupid 此模式下Group名称一致;
效果:生产者生产出一批数据、会发送给每一个消费组、当消费组下面还有成员时会选择一个成员发送;
发布订阅模式二、1、生产者们将数据发送已topic(主题)到kafka集群中。
2、消费者订阅topic主题消费组、Groupid 不同,;
效果:每一个groupID消费组 都将获得订阅的数据;