标签:value ESS apache 地方 利用 https ack ref 通过
https://kafka.apachecn.org/intro.html
topic主题:提供一串流式的记录。
Topic 就是数据主题,是数据记录发布的地方,可以用来区分业务系统。Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。
每个partition都是有序且顺序不可变的记录集,并且不断地追加到结构化的commit log文件。partition中的每一个记录都会分配一个id号来表示顺序,我们称之为offset,offset用来唯一的标识partition中每一条记录(也就是说每个topic带多个分区partition,而partition则是用来记录在分区上的操作)。
对于每一个topic, Kafka集群都会维持一个分区日志,如下所示:
每条记录中包含一个key,一个value和一个timestamp(时间戳),以json格式来表示如下(但底层并不是一个json字符串,此处只是为了展示理解):
{ "record":{ "key":"abc", "value":"this is value", "timestamp":1609434061 } }
The Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic(类似于插入数据到数据库,代码中调用insert等操作)。
The Consumer API 允许一个应用程序订阅一个或多个 topic ,并且对发布给他们的流式数据进行处理(类似于在数据库中插入sql)。
The Streams API 允许一个应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或多个topic中去,在输入输出流中进行有效的转换(类似于先在topic之间处理数据,此时还未将数据传到流中,也未存数据库)。
The Connector API 允许构建并运行可重用的生产者或者消费者,将Kafka topics连接到已存在的应用程序或者数据系统。比如,连接到一个关系型数据库,捕捉表(table)的所有变更内容。
生产者可以将数据发布到所选择的topic(主题)中。生产者负责将记录分配到topic的哪一个 partition(分区)中。
消费者使用一个 消费组 名称来进行标识,发布到topic中的每条记录被分配给订阅消费组中的一个消费者实例.消费者实例可以分布在多个进程中或者多个机器上。(解释:记录P0,P1,P2,P3会被分配给两个消费者组A的一个实例和B的一个实例)
如果所有的消费者实例在同一消费组中,消息记录会负载平衡到每一个消费者实例。(解释:假设A不存在,那么四个记录P0,1,2,3会被负载均衡的给C3,4,5,6四个消费者)
如果所有的消费者实例在不同的消费组中,每条消息记录会广播到所有的消费者进程。(解释:假设Server2不存在,因为有A和B两个消费者组,所以P0会被发给A一个实例,B的一个实例,P3同理,会被发给A一个实例,B的一个实例)
标签:value ESS apache 地方 利用 https ack ref 通过
原文地址:https://www.cnblogs.com/tracydzf/p/14958021.html