python生产消费Kafka
python生产消费Kafka主要是跟KafkaConsumer和KafkaProducer两个类打交道.
from kafka import KafkaProducer, KafkaConsumer class PythonKafka(object): def __init__(self, topic=None, username=None, password=None): self.topic = topic self.username = username self.password = password self.count = 0 self.error_count = 0 def on_send_success(self, *args, **kwargs): self.count = self.count + 1 def on_send_error(self, *args, **kwargs): self.error_count = self.error_count + 1 def get_kafka_producer(self): kafka_producer = KafkaProducer(bootstrap_servers=['ip1:port', 'ip2:port', 'ip3:port'], security_protocol='SASL_PLAINTEXT', sasl_mechanism='PLAIN', sasl_plain_username='username', sasl_plain_password='password', request_timeout_ms=40000, api_version=(0, 10, 1)) return kafka_producer def get_kafka_consumer(self): # 指定超时时间,不然会一直阻塞 consumer_params = { 'security_protocol': 'SASL_PLAINTEXT', 'sasl_mechanism': 'PLAIN', 'group_id': 'test_group2', 'sasl_plain_username': 'username', 'sasl_plain_password': 'password', 'auto_offset_reset': 'earliest', 'api_version': (0, 10), 'consumer_timeout_ms': 10000 } return KafkaConsumer(self.topic, bootstrap_servers=['ip1:port', 'ip2:port', 'ip3:port'], **consumer_params) # 异步发送 def send_data(self, json_str): json_bytes = str.encode(json_str) producer = self.get_kafka_producer() producer.send(self.topic, value=json_bytes).add_callback(self.on_send_success).add_errback( self.on_send_error) producer.flush() producer.close() # 接收数据 def receive_data(self): consumer = self.get_kafka_consumer() for msg in consumer: msg_str = str(msg.value, encoding='utf8') print(msg_str) consumer.close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗