kafka python客户端连接风暴_kafka producer参数详解

本文详细解析kafka Python客户端的producer参数,重点在于如何在保证效率的同时防止数据丢失。参数如acks、retries、batch_size等的设置对性能和可靠性有重大影响。例如,acks设为'all'可确保消息不丢失,而linger_ms用于批量发送提高效率。合理配置可避免连接风暴和顺序问题。
摘要由CSDN通过智能技术生成

注:此文并非官方文档的翻译

kafka的producer默认是异步的方式,在大数据量的情况下可能会出现丢失数据的情况.但是同步的方式又比较低效,因此合理设置异步producer下的kafka参数既可以提高效率又可以不丢失数据.只是要对各参数有一个比较深入的了解.下面是我总结的对于处理安全外几乎所有producer参数的理解:

以python客户端为例子,java的参数名可能稍有不同但是含义是一样的

例子:

producer = KafkaProducer(bootstrap_servers='xxx1:9092,xxx2:9092',

acks=1,retries =3,

batch_size=524288,

reconnect_backoff_max_ms=3000,

buffer_memory=536870912

)

// producer默认是异步的

f = producer.send("topic_name","hello")

//f.get(timeout=3) 如果加了get就变成了同步,也就是说要等待get到服务端返回的结果后再往下执行

bootstrap_servers

格式为host[:port]例如localhost:9092,是kafka连接的broker地址列表,可以是多台,用逗号分隔

client_id (str)

客户端名称,用来追查日志的,默认是kafka-python-producer-# (#是个唯一编号)

key_serializer (callable)

key序列化函数. 默认值: None.

value_serializer (callable)

值序列化函数默认值: None.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值