Kafka 和 Kafka Connect
Overview
在本指南中,您可以了解有关 Apache Kafka 和 Kafka Connect 的以下基础信息:
Apache Kafka 和 Kafka Connect 是什么
Apache Kafka 和 Kafka Connect 解决什么问题
为什么 Apache Kafka 和 Kafka Connect 非常实用
数据如何通过 Apache Kafka 和 Kafka Connect 管道
Apache Kafka
Apache Kafka 是一个开源发布/订阅消息系统。Apache Kafka 提供了一个灵活、容错且可水平扩展的系统,用于在数据存储和应用程序中移动数据。如果满足以下条件,则系统是容错的:即使系统的某些组件停止工作,系统也可以继续运行。如果可以通过添加更多计算机(而不是改进计算机硬件)来扩展系统以处理更大的工作负载,则系统是可水平扩展的。
有关 Apache Kafka 的更多信息,请参阅以下资源:
Kafka Connector
Kafka Connect 是 Apache Kafka 的一个组件,解决了 Apache Kafka 与 MongoDB 等数据存储的连接问题。Kafka Connect 通过提供以下资源解决了这个问题:
用于与数据存储之间传输数据的容错运行时环境。
Apache Kafka 社区的框架,用于分享将 Apache Kafka 连接到不同数据存储的解决方案。
Kafka Connect 框架定义一个 API,以使开发人员编写可重用的连接器。连接器使 Kafka Connect 部署能够与作为数据源或数据接收器的特定数据存储进行交互。MongoDB Kafka Connector 就是这些连接器之一。
有关 Kafka Connect 的更多信息,请参阅以下资源:
为 Connect 构建第一个 来自connector KafkaApache软件基金会
提示
在连接到数据存储时使用 Kafka Connect 而不是生产者/使用者客户端
虽然您可以编写自己的应用程序,以使用生产客户端和消费客户端将 Apache Kafka 连接到特定的数据存储,但 Kafka Connect 可能更适合您。以下是使用 Kafka Connect 的部分原因:
Kafka Connect 具有容错的分布式架构,以确保可靠的管道。
有大量社区维护的连接器,可使用 Kafka Connect 框架将 Apache Kafka 连接到 MongoDB、PostgreSQL 和 MySQL 等常用数据存储。 这减少了您必须编写和维护的模板代码量,以管理数据库连接、错误处理、死信队列集成以及 Apache Kafka 与数据存储连接时涉及的其他问题。
您可以选择使用 Confluence 提供的托管 Kafka Connect 集群。
示意图
下图展示了信息如何流经使用 Apache Kafka 和 Kafka Connect 构建的示例数据管道。示例管道将 MongoDB 集群用作数据源,将 MongoDB 集群用作数据汇。
示例管道中的所有连接器和数据存储都是可选的。 您可以将其替换为部署所需的连接器和数据存储。