|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
分类:
bdv013-kafka
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY