简体   繁体   English

Confluent Kafka:如何在 confluent-kafka-python 客户端中指定序列化和分区?

[英]Confluent Kafka: How is serialization and partitioning specified in confluent-kafka-python client?

1) In Java Client, using producer.put() we can add serializers for Integers and Strings. 1) 在 Java 客户端中,使用 producer.put() 我们可以为整数和字符串添加序列化器。 How do we do this for confluent-kafka-python client?我们如何为 confluent-kafka-python 客户端执行此操作? 2) How do we serialize protoBuf records? 2) 我们如何序列化 protoBuf 记录?

In recent version i guess it gives No such configuration property: "value.serializer" thus we will need to user SerializingProducer and value.serializer value should be callback在最近的版本中我猜它没有这样的配置属性:“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()

For question #1: Add key.serializer and value.serializer in the config, as show below: 对于问题1:在配置中添加key.serializervalue.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)

For question #2: Implement your own ProtobufSerializer class and set {key|value}.serializer to it. 对于问题2:实现自己的ProtobufSerializer类,并为其设置{key | value} .serializer。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用 confluent-kafka-python 确定是否存在 kafka 主题 - How to determine if a kafka topic exists using confluent-kafka-python 如何使用 confluent-kafka-python 删除主题 - How can I delete Topics using confluent-kafka-python 在 confluent-kafka-python 中设置主题日志保留 - Setting Topic log retention in confluent-kafka-python confluent-kafka-python 生产者和消费者中的 error_cb - error_cb in confluent-kafka-python producers and consumers confluent-kafka-python:没有参数的Consumer.commit() - confluent-kafka-python: Consumer.commit() with no parameters confluent-kafka-python json_producer:无法识别的字段:schemaType - confluent-kafka-python json_producer : Unrecognized field: schemaType Confluent-Kafka-Python:获取每个主题分区的延迟 - Confluent-Kafka-Python: Get lag per topic partition Docker中的Python Confluent Kafka客户端 - Python Confluent Kafka Client in Docker 无法使用 confluent-kafka-python 从 Kafka Topic 消费到新的消费者组 - Cannot consume from Kafka Topic using confluent-kafka-python to a new consumer-group Kafka Error INVALID_ARG No Such configuration property sasl.mechanisms 使用 confluent-kafka-python 时 - Kafka Error INVALID_ARG No Such configuration property sasl.mechanisms when using confluent-kafka-python
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM