Kafka消息系统是一个典型的分布式系统,其组成部分包括:消息生产者(Producer)、消息消费者(Consumer)、消息服务器(Broker)以及分布式协调服务ZooKeeper。一个典型的Kafka消息系统的集群架构如下图所示。
视频讲解如下:
下表列举了Kafka中的一些术语,这些术语对于掌握Kafka的内容非常重要。
Broker是消息的服务器。生产者往Brokers里面的指定主题中写入消息,消费者从Brokers里面拉取指定主题的消息,然后进行业务处理。Broker在中间起到一个代理保存消息的作用。
另一方面,Broker没有副本机制。因此一旦Broker宕机,该Broker的消息将都不可用。消费者可以回溯到任意位置重新从Broker中进行消息的消费。当消费者发生故障时,可以选择最小的消息偏移量地址进行重新读取消费消息。
Kafka中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题,而消费者负责订阅主题进行消费。主题可以分为多个分区,一个分区只属于某一个主题。下面为列举了主题和分区的关系:
下图展示了主题与分区之间的关系。
在这个例子中,Topic A有3个分区。消息由生产者顺序追加到每个分区日志文件的尾部。Kafka中的分区可以分布在不同的Kafka Broker上,从而支持负载均衡和容错的功能。也就是说,Topic是一个逻辑单位,它可以横跨在多个Broker上。
消息的生产者负责将消息发送到Kafka的Broker上。生产者生产的消息可以是字符串类型的消息,也可以是一个对象。
消息的消费者负责消费和处理消息。在Kafka消息系统中采用了消费者组的方式来管理消费者。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。