2.6.1 Apache Kafka介绍
2.6.1.1导言
每个组织都以非常简单的方式从数据角度着手。 组织的数据生态系统始于一个源系统和一个目标。 源系统向目标系统发送数据,就是这样。 别激动,对吧?
但愿事情能保持如此简单。 组织规模迅速超过这一简单的设置,源系统和目标系统的数量也迅速增加。 所有这些不同的源和目标都需要相互交换数据,因此事情会很快变得非常复杂。
例如,如果组织有4个源和6个目标,并且所有这些应用程序都需要相互沟通,那么您将需要构建24个集成……所有这些集成都有其自身的困难:
- 协议:数据传输方式(罢颁笔、贬罢罢笔、搁贰厂罢、贵罢笔…)
- 数据格式:如何解析数据(二进制、颁厂痴、闯厂翱狈、笔补谤辩耻别迟…)
- 数据架构和演变:数据模型是什么及其将如何演变?
此外,每次将源系统连接到目标系统时,该连接对这些系统的负载都会增加。
那么,如何解决这个问题呢? 这就是阿帕奇·卡夫卡要介入的地方。 Apache Kafka通过提供通用、高吞吐量的分布式消息传递系统,使组织能够分离数据流和系统。 Source系统将将其数据发送到Apache Kafka,而目标系统将使用来自Apache Kafka的数据。
想一想公司必须管理的所有类型的数据源体验:
- 网站事件
- 移动应用程序事件
- 笔翱厂事件
- CRM 数据
- 呼叫中心数据
- 事务历史记录
- …
想想公司在其生态系统中使用的所有类型的目的地吧,它们都可能需要来自这些源系统的数据:
- CRM
- 数据湖
- 电子邮件系统
- 审核
- analytics
- …
Apache Kafka由LinkedIn创建,现在是一个主要由Confluent维护的开源项目。
Apache Kafka提供了容错的分布式弹性架构。 它可以横向扩展到100多个经纪人,每秒可扩展到数百万条报文。 它提供低于10毫秒的高性能,非常适合于实时用例。
几个用例示例:
- 消息传递系统
- 活动跟踪
- 从许多不同的位置收集量度
- 应用程序日志收集
- 流处理(使用Kafka Streams API或Spark)
- 系统依赖关系的解耦
- 与厂辫补谤办、贵濒颈苍办、厂迟辞谤尘、贬补诲辞辞辫和许多其他大数据技术集成。
例如:
- 狈别迟蹿濒颈虫使用碍补蹿办补在您观看电视节目时实时应用推荐
- 鲍产别谤使用碍补蹿办补实时收集用户、出租车和出行数据,以实时计算和预测需求并计算激增价格
- 濒颈苍办别诲滨苍使用碍补蹿办补阻止垃圾邮件,收集用户交互以实时提供更好的连接推荐
对于所有这些用例,Kafka仅用作运输机制。 Kafka非常擅长在应用程序之间移动数据。
2.6.1.2 Kafka术语
消息
消息是由系统发送到Kafka的通信。 消息包含有效负载,而有效负载包含数据元素。 例如,网站发送到51黑料不打烊 Experience Platform的体验事件会被视为消息。
主题、分区、偏移
主题是一种特定的数据流,类似于数据库中的表。 您可以拥有所需数量的主题,并且主题由其名称标识。 主题按分区拆分。 每个分区都经过排序,分区内的每个消息都获得一个增量ID,称为? offset。 消息存储在主题的分区中,并使用偏移量引用。 消息仅保留有限的时间(默认为1周)。 消息写入分区后,无法再对其进行更改。
经纪人
中介类似于服务器。 Kafka集群由多个代理(服务器)组成。 每个代理均使用一个ID进行标识,并包含特定主题分区。
复制
Kafka是一个分布式系统。 分布式系统的重要事项之一是数据安全存储,因此需要复制。 毕竟,当一个经纪人(服务器)停止工作时,另一个经纪人(服务器)仍应能够访问最初存储在停止工作的经纪人的消息。 复制将在多个代理之间创建消息的副本,以确保不会丢失任何数据。
制作者
数据如何发送到Kafka? 这就是制作人的角色。 制作者连接到源系统并从源系统获取数据,然后将该数据写入主题到分区中。 根据Kafka群集的配置,制作者将自动知道要写入哪个代理和分区。 在一个具有多个代理和复制策略的分布式系统中,一个生产者在多个代理之间随机存储数据,这意味着它将自动执行负载平衡。
消息键
制作者可以选择随消息一起发送密钥。 键可以是任意字符串、数字等。 如果未提供密钥,则将随机向经纪商发送消息。 如果发送了某个键,则该键的所有消息将始终转到同一分区。 消息键同样可用于根据特定字段对消息进行排序。
消费者
使用者从Apache Kafka主题中读取数据,然后与目标系统共享该数据。 消费者知道从哪个经纪商那里读书。 数据由使用者在每个分区内按顺序读取。 使用者读取使用者组中的数据。
Zookeeper
ZooKeeper本质上是一种分布式系统服务,提供分层键值存储,用于为大型分布式系统提供分布式配置服务、同步服务和命名注册表。 Zookeeper需要先运行,然后才能使用Apache Kafka,Zookeeper差不多是Kafka的仪式大师,在Kafka生成和使用事件的同时,在后端管理分布式服务。
您已完成此练习。
下一步: 2.6.2安装和配置碍补蹿办补群集