赞
踩
kafka是高效的数据流处理平台。可以理解为数据的写入和读取的“中转站”。
Broker
一个broker对应一个kafka实例,可以分别在多台服务器上各启动一个broker, 也可在一个服务器上启动多个broker。
Topic
消息的主题,一个broker可有多个topic。
Partition
每个Topic中的信息可以分配在多个Partition中,有利于高效消费和后续的管理和扩展
Producer
生产者,即数据来源
Consumer
数据消费者
Consumer Group
不同的Consumer可以分在相同的group中,在同一个group中,不同的consumer消费同一个Topic的不同partition的信息。这样能保证统一topic的信息不会被重复消费。
因此consumer数量如果能正好等于partition数量,能高效读取数据,但若consumer数量大于partition数量,会有部分consumer没有被利用起来,因为同一个partition不能被多个consumer消费。
Leader和Replication
对于partition而言,每个partition在不同的broker上都有存储,但会选择某个broker的partition作为Leader, 其余的作为Replication。
producer写入数据时仅会写入leader中,replication会主动从leader中pull数据进行备份,同理consumer读取数据时也是只从leader中读取。当leader所在broker宕机时,kafka会从replication中选取broker作为新的leader,由此保证数据不丢失和高效读取。
Segment
在一个Parition中会有多个segment,每个segment一般包含这三样东西:index、timeIndex、log。其中index和
timeIndex用于索引,log中存放数据信息。每segment中有会有一条或多条信息。
运用分段和索引的方法检索信息能提高数据查询效率。
Offset
用于确定每条信息在partition中的位置。
kafka提供了包括C、Java、Python等多种语言接口,在本次使用中我主要进行Consumer端的开发,使用的是python的confluent_kafka库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。