您的位置:首页 > 其它

Kafka入门(一)

2019-05-13 22:06 71 查看
版权声明:转载请注明 https://blog.csdn.net/twt936457991/article/details/90182455

1.1 Kafka简介

关于 Kafka,网上有很多介绍,经过不断地复制、洗稿、演绎后,难免背离原意,因此,我们还是来看一下官网给出的定义:

Apache Kafka is a distributed streaming platform.

Kafka 作为流平台具有以下三种能力:

  1. 发布和订阅记录流,类似于消息队列或企业消息系统;
  2. 具有容错能力,且可以持久化的方式存储记录流;
  3. 当记录流产生时(发生时),可及时对其进行处理。

Kafka 适用于两类应用:

  1. 建立实时流数据管道,在系统或应用之间可靠地获取数据;
  2. 建立对数据流进行转换或反应的实时流应用程序。

kafka 包含四种核心 API。

  1. Producer API:基于该 API,应用程序可以将记录流发布到一个或多个 Kafka 主题(Topics);
  2. Consumer API:基于该 API,应用程序可以订阅一个或多个主题,并处理主题对应的记录流;
  3. Streams API:基于该 API,应用程序可以充当流处理器,从一个或多个主题消费输入流,并生成输出流输出一个或多个主题,从而有效地将输入流转换为输出流;
  4. Connector API:允许构建和运行将 Kafka 主题连接到现有应用程序或数据系统的可重用生产者或消费者。例如,关系数据库的连接器可能会捕获表的每一个更改。

1.2 Kafka 特点

作为一种高吞吐量的分布式发布订阅消息系统,Kafka 具有如下特性:

  • 快速持久化,可以在 O(1) 的系统开销下进行消息持久化;
  • 高吞吐,在一台普通的服务器上可以达到 10W/s 的吞吐速率;
  • 完全的分布式系统,Broker、Producer、Consumer 都原生自动支持分布式,自动实现负载均衡;
  • 支持同步和异步复制两种 HA;
  • 支持数据批量发送和拉取;
  • Zero-Copy,减少 IO 操作步骤;
  • 数据迁移、扩容对用户透明;
  • 无需停机即可扩展机器;
  • 其他特性还包括严格的消息顺序、丰富的消息拉取模型、高效订阅者水平扩展、实时的消息订阅、亿级的消息堆积能力、定期删除机制。

1.3 Kafka 架构

如上图所示,一个典型的 Kafka 体系架构包括若干 Producer(消息生产者),若干 Broker(Kafka 支持水平扩展,一般 Broker 数量越多,集群吞吐率越高),若干 Consumer(Group),以及一个 Zookeeper 集群。Kafka 通过 Zookeeper 管理集群配置,选举 Leader,以及在 Consumer Group 发生变化时进行 Rebalance。Producer 使用 Push(推)模式将消息发布到 Broker,Consumer 使用 Pull(拉)模式从 Broker 订阅并消费消息。

各个名词的解释请见下表:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: