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

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

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.

你可能感兴趣的:(kafka,python客户端连接风暴)