python使用kafka生产和消费案例

// confluent_kafka 使用案例
import json
from confluent-kafka import Producer

topic_name = ""
conf = {
// 集群,或者服务器名
"bootstrap.servers":"",
// 安全隧道
"security.protocol":"sasl_plaintext",
//加密方式
"sasl.mechanism":"SCRAM-SHA-256"
// 账号密码
"sasl.username":"",
"sasl.password":"",
# >> [详细配置见](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md)
....
}

produce = Producer(**conf)

a= {"name":"12344","age":18,"sex":"man"}
produce.produce(topic_name,json.dumps(a,ensure_ascii=False).encoding("utf-8"))

produce.pull()
produce.flush()

详解 confluent_kafka python版本的生产使用案例。
1.需要注意的是confluent_kafka 安装时候可能会出现报错,建议使用conda 安装,主要出现的问题在sasl上
2.confluent_kafka,我是用的情况来看,必须有账号和密码
3.confluent_kafka 没有常见的batch方式,你可以通过produce.poll(timeout=0.2)来对每条数据强制等待返回结果,可以使用flush(),批量等待结果(内部调用poll()实现具体任务)
4.如果想要提高效率,可以取消掉produce.flush() 和 produce.pull()
5.每一个produce(),传入字符串有个长度限制和容量显示,可以在详细配置见message.max.bytes 来提高传入字符串的长度。

import json
from confluent-kafka import Consumer

topic_name = ""
conf = {
// 集群,或者服务器名
"bootstrap.servers":"",
// 安全隧道
"security.protocol":"sasl_plaintext",
//加密方式
"sasl.mechanism":"SCRAM-SHA-256"
// 账号密码
"sasl.username":"",
"sasl.password":"",
"group.id":["xxx","xxx1"],
// 需要增加offset相关的配置和消费策略

# >> [详细配置见](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md)
....
}

consumer= Consumer(**conf)
batch_size = 200
while True:
	// 消费数据
	data = consumer.consume(batch_size)
	keep_datas = []
	// 判断是否消费失败
	if data.error() is not None:
		for dat in data:
			if dat.error() is not None:
				keep_datas.append(dat.value())
			else:
				print("当前此条message消费失败......")
	else:
		print("当前此批消费失败~~")
	# json 解析判断
	use_items = []
	for keep_data in keep_datas:
		try:
			use_items.append(json.loads(keep_data))
		except Exception as e
			print("当前此条消息,json解析失败.....")	
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值