|NO.Z.00016|——————————|BigDataEnd|——|Hadoop&kafka.V01|——|kafka.v01|数据生产流程剖析|生产者参数详解.v01|

一、生产者:消息发送
### --- [kafka高级特性解析]

~~~     [数据生产流程剖析]
~~~     [生产者参数详解]
~~~     [生产者参数代码案例]
### --- 数据生产流程解析

~~~     # Producer创建时,会创建一个Sender线程并设置为守护线程。
~~~     生产消息时,内部其实是异步流程,生产的消息先经过拦截器->序列化器->分区器,
~~~     然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建)。
~~~     批次发送的条件为:缓冲区数据大小达到batch.size或者linger.ms达到上限,哪个先达到就算哪个。
~~~     批次发送后,发往指定分区,然后落盘到broker;
~~~     如果生产者配置了retrires参数大于0并且失败原因允许重试,那么客户端内部会对该消息进行重试。
~~~     落盘到broker成功,返回生产元数据给生产者。
~~~     元数据返回有两种方式:一种是通过阻塞直接返回,另一种是通过回调返回。
### --- 必要参数配置:broker配置

~~~     配置条目的使用方式:
二、配置参数:
属性 说明 重要性
bootstrap.servers 生产者客户端与broker集群建立初始连接需要的broker地址列表,
由该初始连接发现Kafka集群中其他的所有broker。
该地址列表不需要写全部的Kafka集群中broker的地址,
但也不要写一个,以防该节点宕机的时候不可用。
形式为:host1:port1,host2:port2,... .
high
key.serializer 实现了接口:org.apache.kafka.common.serialization.Serializer 的key序列化类。 high
value.serializer 实现了接口:
org.apache.kafka.common.serialization.Serializer 的value序列化类。
high
acks 该选项控制着已发送消息的持久性。
acks=0 :
生产者不等待broker的任何消息确认。只要将消息放到了socket的缓冲区,就认为消息已发送。不能保证服务器是否收到该消息, retries 设置也不起作用,因为客户端不关心消息是否发送失败。客户端收到的消息偏移量永远是-1。
acks=1 :
leader将记录写到它本地日志,就响应客户端确认消息,而不等待follower副本的确认。如果leader确认了消息就宕机,则可能会丢失消息,因为follower副本可能还没来得及同步该消息。
acks=all :
leader等待所有同步的副本确认该消息。保证了只要有一个同步副本存在,消息就不会丢失。这是最强的可用性保证。等价于acks=-1 。默认值为1,字符串。可选值:[all, -1, 0, 1]
high
compression.type 生产者生成数据的压缩格式。默认是none(没有压缩)。
允许的值: none , gzip , snappy 和lz4 。
压缩是对整个消息批次来讲的。
消息批的效率也影响压缩的比例。
消息批越大,压缩效率越好。字符串类型的值。默认是none。
high
retries 设置该属性为一个大于1的值,将在消息发送失败的时候重新发送消息。
该重试与客户端收到异常重新发送并无二至。
允许重试但是不设置max.in.flight.requests.per.connection 为1,
存在消息乱序的可能,因为如果两个批次发送到同一个分区,
第一个失败了重试,第二个成功了,则第一个消息批在第二个消息批后。
int类型的值,默认:0,可选值:[0,...,2147483647]
high

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示