我们已经学习了Apache Kafka的基本概念。这些基本概念,例如主题,分区,生产者,消费者等,共同构成了Kafka体系结构。
【apache kafka架构原理】由于不同的应用程序相应地设计了Kafka的体系结构,因此需要以下基本部分来设计Apache Kafka体系结构。
- 数据生态系统:使用Apache Kafka的多个应用程序构成了一个生态系统。该生态系统是为数据处理而构建的。它以创建数据的应用程序的形式接受输入,并以度量标准,报告等形式定义输出。下图表示Kafka的循环数据生态系统。
文章图片
- Kafka群集:Kafka群集是一个由不同的代理,主题及其各自的分区组成的系统。数据将写入集群中的主题,并由集群本身读取。
- 生产者:生产者将数据/消息发送或写入集群中的主题。为了存储大量数据,应用程序中的不同生产者会将数据发送到Kafka集群。
- 使用者:使用者是读取或使用Kafka集群中的消息的使用者。可能有几个使用者从集群中消费了不同类型的数据。 Kafka的优点在于,每个消费者都知道需要从何处消费数据。
- 代理:Kafka服务器被称为代理。经纪人是生产者和消费者之间的桥梁。如果生产者希望将数据写入群集,则将其发送到Kafka服务器。所有经纪人都位于Kafka集群中。另外,可以有多个经纪人。
- 主题:这是一个通用名称或标题,代表相似的数据类型。在Apache Kafka中,集群中可以有多个主题。每个主题指定不同类型的消息。
- 分区:数据或消息分为小部分,称为分区。每个分区在其中携带具有偏移值的数据。数据始终以顺序方式写入。我们可以有无限多个具有无限偏移值的分区。但是,不能保证将消息写入哪个分区。
- ZooKeeper:ZooKeeper用于存储有关Kafka群集的信息以及消费者客户端的详细信息。它通过维护经纪人列表来管理经纪人。另外,ZooKeeper负责选择分区的领导者。如果发生诸如代理死亡,新主题等更改,则ZooKeeper会向Apache Kafka发送通知。 ZooKeeper旨在与奇数个Kafka服务器一起运行。 Zookeeper有一个负责处理所有写入操作的领导服务器,其余的服务器则是负责处理所有读取操作的跟随者。但是,用户不是直接与Zookeeper交互,而是通过代理进行交互。没有Zookeeper服务器,任何Kafka服务器都无法运行。必须运行Zookeeper服务器。
文章图片
在上图中,有三个Zookeeper服务器,其中服务器2是领导者,另两个服务器被选择为其跟随者。五个代理连接到这些服务器。当代理程序关闭,添加更多主题等时,Kafka集群会自动知道。
因此,结合所有必要性,设计了一个Kafka集群体系结构。
文章图片
推荐阅读
- apache kafka的安装
- apache kafka多集群
- apache kafka的优点和缺点
- apache kafka的应用
- apache kafka的用例
- apache kafka消费者和消费者组
- apache kafka生产者(producer)
- kafka主题复制
- kafka基本概念