[英]How to determine if a kafka topic exists using confluent-kafka-python
[英]Confluent Kafka: How is serialization and partitioning specified in confluent-kafka-python client?
1) 在 Java 客戶端中,使用 producer.put() 我們可以為整數和字符串添加序列化器。 我們如何為 confluent-kafka-python 客戶端執行此操作? 2) 我們如何序列化 protoBuf 記錄?
在最近的版本中我猜它沒有這樣的配置屬性:“value.serializer”因此我們需要用戶 SerializingProducer 和 value.serializer 值應該是回調
from confluent_kafka import SerializingProducer
import json
def json_serializer(msg, s_obj):
return json.dumps(msg).encode('utf-8')
conf = {'bootstrap.servers': 'localhost:29092',
'value.serializer': json_serializer}
producer_client = SerializingProducer(conf)
def producer_json_msg(topic_name, **args):
producer_client.produce(topic_name, **args)
producer_json_msg('test_two', value={'test': "this is fine"})
producer_client.flush()
對於問題1:在配置中添加key.serializer
和value.serializer
,如下所示:
from confluent_kafka import Producer
import socket
conf = {'bootstrap.servers': "host1:9092,host2:9092",
'client.id': socket.gethostname(),
'key.serializer': 'key serializer classpath',
'value.serializer': 'value serializer classpath',
'default.topic.config': {'acks': 'all'}}
producer = Producer(conf)
對於問題2:實現自己的ProtobufSerializer類,並為其設置{key | value} .serializer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.