【问题标题】:How does a python kafka producer work when some of brokers are not available?当一些经纪人不可用时,python kafka 生产者如何工作?
【发布时间】:2017-01-10 13:23:37
【问题描述】:

我已经建立了一个 3 节点的 kafka 集群并使用 python 作为生产者,如下所示:

kafka_addr = "n0.xxx.com:9092,n1.xxx.com:9092,n2.xxx.com:9092"
producer = KafkaProducer(bootstrap_servers=kafka_addr)

当“n0”和“n1”可用但“n2”不可用(broker故障或网络错误)时,producer无法正常工作,发送到“n0n1”却抛出错误:

getaddrinfo failed for n2.xxx.com:9092, exception was [Errno 8] nodename nor servname provided, or not known. Is your advertised.host.name correct and resolvable?

【问题讨论】:

    标签: python apache-kafka kafka-python


    【解决方案1】:

    我试图找到一个可用的经纪人并发送给它:

    kafka_addr = ["n0.xxx.com:9092","n1.xxx.com:9092",n2.xxx.com:9092"]
    producer = None
    for broker in kafka_addr:
        try:
            producer = KafkaProducer(bootstrap_servers=broker)
            break
        except:
            pass
    if producer is not None:
        #do something
    

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 2018-11-17
      • 2018-02-19
      • 2012-12-28
      • 2018-01-30
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      相关资源
      最近更新 更多