【问题标题】:Send data between servers Kafka Apache on Python在 Python 上的服务器 Kafka Apache 之间发送数据
【发布时间】:2020-06-02 16:19:30
【问题描述】:
producer = KafkaProducer(bootstrap_servers='kf-p1l-node3:9092,xxxxx,xxxxx',
                                 value_serializer=lambda x: dumps(x).encode('utf-8'))  # utf-8
consumer = KafkaConsumer(  bootstrap_servers='rdwh-node1:49092,xxxxx,xxxxx',
                                 # bootstrap_servers='kf-p1l-node3:9092,xxxxx,xxxxx',
                                 auto_offset_reset=param["AUTO_OFFSET_RESET"],
                                 consumer_timeout_ms=param["CONSUMER_TIMEOUT_MS"],
                                 enable_auto_commit=False,
                                 auto_commit_interval_ms=60000,
                                 group_id=param["GROUP_ID"],
                                 client_id=param["CLIENT_ID"]
                                 )
consumer.subscribe([param["TOPIC_IN"]])

如果 KafkaProducer 和 KafkaConsumer 的 bootstrap_server 相同,则此代码有效。但是如果将 KafkaConsumer 更改为另一台服务器,它就不起作用了

【问题讨论】:

    标签: python apache-kafka kafka-consumer-api


    【解决方案1】:

    引导服务器必须包含所有用于建立与 Kafka 集群的初始连接的服务器。客户端将使用所有服务器,而不管此处为引导指定了哪些服务器。你可以在这里查看文档:http://kafka.apache.org/090/documentation.html

    consumer = KafkaConsumer('my-topic',
                             group_id='my-group',
                             bootstrap_servers=['node1:port1', 'node1:port2', 'node2:port3'])
    

    【讨论】:

    • @dorukerenaktas 你的意思是,bootstrap_servers=['rdwh-node1:49092,xxxxx,xxxxx','kf-p1l-node3:9092,xxxxx,xxxxx']?
    • 不,您可以查看 python kafka 文档以获取更多信息:kafka-python.readthedocs.io/en/master/usage.html。我更新了答案以更容易理解。
    猜你喜欢
    • 2019-01-12
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多