美文网首页简友广场每天写1000字程序员
Kafka Producer组件的功能以及设计要点剖析

Kafka Producer组件的功能以及设计要点剖析

作者: 皮皮杂谈 | 来源:发表于2019-05-20 01:32 被阅读3次

Kafka组件包含Producer、Broker、Consumer及ZooKeeper。本文将介绍Kafka Producer组件的功能以及设计要点。

Kafka Producer是由用户使用Kafka提供的SDK开发的,Producer将数据转化成消息,并通过网络发送给Broker。

在Kafka中,每条数据被称为消息,每条消息表示为一个三元组:<topic,key,message>。每个元素表示的含义如下:

topic:表示该条消息所属的topic。topic是划分消息的逻辑概念,一个topic可以分布到多个不同的broker上。

key:表示该条消息的主键。Kafka会根据主键将同一个topic下的消息划分成不同的分区(partition),默认是基于哈希取模的算法,用户也可以根据自己需要设计分区算法。Kafka Producer写入数据过程如图所示:

Kafka Producer写消息过程

假设topic A共分为4个partition(创建topic时静态指定的),当用户向topic A写入一条消息时,会对key求hash值,得到一个整数,然后对该整数求模4,得到待写入的partition编号,之后通过网络告知Broker,由Broker写到对应的partition中。

message:表示该条消息的值。该数值的类型为字节数组,可以是普通字符串、JSON对象,或者经过JSON、Avro,Thrift或Protobuf等序列化框架序列化后的对象。

Kafka Producer发送消息时,不需要指定所有Broker的地址,只需给定一个或几个初始化Broker地址即可(一般给定多于一个以达到容错的目的),Producer可通过指定的Broker获取其他所有Broker的位置信息,并自动实现负载均衡。

相关文章

网友评论

    本文标题:Kafka Producer组件的功能以及设计要点剖析

    本文链接:https://www.haomeiwen.com/subject/hqaczqtx.html