美文网首页每天进步一点点
2020-05-30【Kafka生产者】

2020-05-30【Kafka生产者】

作者: 桢桢claire | 来源:发表于2020-05-30 23:22 被阅读0次
    彩色的喀纳斯

    今日鸡汤

    许多人对信息的接收,其实本质上不过是在「找认同」罢了。

    这句话深有感触。

    好了,今天接着看《Kafka权威指南》,了解Kafka生产者。

    Kafka生产者是如何发送消息的?

    Kafka生产者组件

    总的来说,分为几步:

    第一步,创建ProducerRecord对象。它包含目标主题(Topic)和要发送的内容(Value)。

    第二步,序列化。生产者需要把键和值对象序列化成字节数组,以便他们在网络上传输。

    第三步,数据传输给分区器。根据ProducerRecord指定的分区(Partition)或根据键值选择一个分区。

    第四步,添加记录到记录批次里。

    第五步,将记录批次发送到相应的broker。

    Producer对象需要设置的属性有哪些?

    3个必选属性。

    1)bootstrap.server,指定broker地址(host:port)

    2)key.serializer,设置为一个实现Serizalizer接口的类,来序列化消息的键。

    3)value.serializer,设置为一个实现Serizalizer接口的类,来序列化消息的值。

    发送消息的方式有哪几种?

    三种。

    1)发送并忘记(fire-and-forget):消息发给服务器,单并不关心是不是正常到达。

    2)同步发送:使用send()方法发送消息,返回一个Future对象,调用get()进行等待。如果服务器返回错误(可重试错误或非可重试错误),会抛异常,否则,会得到一个RecordMetadata对象

    3)异步发送:调用send()方法并指定一个回调函数。

    生产者有哪些重要配置参数?

    1. acks(0|1|all) - 必须要有多少个分区收到消息,生产者才认为消息写入是成功的。

    2. buffer.memory - 设置生产者内存缓冲区大小。

    3.compression.type(snappy|gzip|lz4) - 指定消息发送给broker前用哪种算法压缩。

    4. retires - 生产者可以重发消息的次数。

    5. batch.size - 指定一个批次可以使用的内存大小(字节数计算)。

    6. max.in.flight.requests.per.connection - 生产者在收到服务器响应前可以发送多少消息。

    7. max.request.size - 生产者发送的请求大小。

    相关文章

      网友评论

        本文标题:2020-05-30【Kafka生产者】

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