一文读懂什么是分布式流处理系统Kafka.doc
《一文读懂什么是分布式流处理系统Kafka.doc》由会员分享,可在线阅读,更多相关《一文读懂什么是分布式流处理系统Kafka.doc(4页珍藏版)》请在三一文库上搜索。
1、一文读懂什么是分布式流处理系统Kafka什么是KafkaKafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理消息的机制。Kafka的基本概念kafka运行在集群上,集群包含一个或多个服务器。kafka把消息存在topic中,每一条消息包含键值(key),值(value)和时间戳(timestamp)。kafka有以下一些基本概念:Producer - 消息生产者,就是向kafka broker发消息的客户端。Consumer - 消息消费者,是消息的使用方,负责消费Kafka服务器上的消息。Topic - 主题
2、,由用户定义并配置在Kafka服务器,用于建立Producer和Consumer之间的订阅关系。生产者发送消息到指定的Topic下,消息者从这个Topic下消费消息。Partition - 消息分区,一个topic可以分为多个 partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。Broker - 一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。Consumer Group - 消费者分组,用于归组同类消费者。每个consumer属于一个特定的cons
3、umer group,多个消费者可以共同消息一个Topic下的消息,每个消费者消费其中的部分消息,这些消费者就组成了一个分组,拥有同一个分组名称,通常也被称为消费者集群。Offset - 消息在partition中的偏移量。每一条消息在partition都有唯一的偏移量,消息者可以指定偏移量来指定要消费的消息。Kafka分布式架构如上图所示,kafka将topic中的消息存在不同的partition中。如果存在键值(key),消息按照键值(key)做分类存在不同的partiition中,如果不存在键值(key),消息按照轮询(Round Robin)机制存在不同的partition中。默认情况
4、下,键值(key)决定了一条消息会被存在哪个partition中。partition中的消息序列是有序的消息序列。kafka在partition使用偏移量(offset)来指定消息的位置。一个topic的一个partition只能被一个consumer group中的一个consumer消费,多个consumer消费同一个partition中的数据是不允许的,但是一个consumer可以消费多个partition中的数据。kafka将partition的数据复制到不同的broker,提供了partition数据的备份。每一个partition都有一个broker作为leader,若干个brok
5、er作为follower。所有的数据读写都通过leader所在的服务器进行,并且leader在不同broker之间复制数据。上图中,对于Partition 0,broker 1是它的leader,broker 2和broker 3是follower。对于Partition 1,broker 2是它的leader,broker 1和broker 3是follower。在上图中,当有Client(也就是Producer)要写入数据到Partition 0时,会写入到leader Broker 1,Broker 1再将数据复制到follower Broker 2和Broker 3。在上图中,Clie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 读懂 什么是 分布式 处理 系统 Kafka
链接地址:https://www.31doc.com/p-3363283.html