Specifying a Python list for config `bootstrap.servers` fails silently with no errors or indications
#711 创建于 2019年10月28日
仓库指标
- Star
- (3,526 star)
- PR 合并指标
- (平均合并 10天 2小时) (30 天内合并 27 个 PR)
描述
Description
The configuration key bootstrap.servers implies that multiple servers can be specified, but it is not explicitly defined what this key's value should be. It appears that only a string using comma separation is allowed for this config key. If a Python list is given, no explicit error or feedback is given to indicate this is not valid. Instead, calls to consumer.poll() or other broker-bound functions simply block and never succeed.
Ideally, a Python list (e.g. ["broker1", "broker2"]) should be valid; or at the very least, constructing the Consumer should throw a runtime/configuration exception.
How to reproduce
Simply specify a Python list as the value for bootstrap.servers in the config given to the Consumer.
conf = {
'bootstrap.servers': ['kafkabroker1:9092', 'kafkabroker2:9092'],
...
}
c = Consumer(conf)
while True:
c.poll(1) # this will never produce a message due to the Python list specified above as the bootstrap.servers value
Checklist
Please provide the following information:
- confluent-kafka-python and librdkafka version (
confluent_kafka.version()andconfluent_kafka.libversion()):
>>> confluent_kafka.version()
('1.2.0', 16908288)
>>> confluent_kafka.libversion()
('1.2.0', 16908543)
- Apache Kafka broker version:
- Client configuration:
{...} - Operating system: Ubuntu 18.04 and CentOS 7
- Provide client logs (with
'debug': '..'as necessary) - Provide broker log excerpts
- Critical issue