Open
Description
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
Metadata
Metadata
Assignees
Labels
Issues that are specific to Python or versions of Python independent of library logicRequesting a feature changeHelpful tag for inviting new users to contributeIt's unclear what the issue is at this time but there is enough interest to look into itMaintainer triage tag for indicating change required is particularly small