You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by GitBox <gi...@apache.org> on 2021/11/22 22:02:17 UTC
[GitHub] [kafka] rondagostino commented on pull request #11503: KAFKA-13456: Tighten KRaft config checks/constraints
rondagostino commented on pull request #11503:
URL: https://github.com/apache/kafka/pull/11503#issuecomment-975956591
> I think we need to discuss the question of whether to include controller.listener.names in listener.names a bit more.
@cmccabe As discussed offline, it turns out that the current code already forbids `controller.listener.names` from appearing in `listeners` under some circumstances for the KRaft broker-only setup.
Config 1: yields **"inter.broker.listener.name must be a listener name defined in advertised.listeners."**
```
process.roles=broker
node.id=2
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092
inter.broker.listener.name=PLAINTEXT
controller.listener.names=PLAINTEXT
```
Config 2: yields **"advertised.listeners cannot contain any of controller.listener.names"**
```
process.roles=broker
node.id=2
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092
inter.broker.listener.name=PLAINTEXT
controller.listener.names=PLAINTEXT
advertised.listeners=PLAINTEXT://localhost:9092
```
Config 3: this works as it should; `controller.listener.names` does not appear in `listeners`:
```
process.roles=broker
node.id=2
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
```
However, adding CONTROLLER as a listener is acceptable with the current code. For example:
**Currently acceptable, should be rejected**
```
process.roles=broker
node.id=2
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
inter.broker.listener.name=PLAINTEXT
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
```
The inclusion of `CONTROLLER://localhost:9093` in `listeners` adds/does nothing -- in particular, the broker does **not** listen there, so really all it does is encourage confusion.
So while this is a breaking change, it is only a breaking change for certain configurations, and it is likely acceptable given that KRaft is still in Preview rather than General Availability.
It would be good to add some text about this in KIP-631.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: jira-unsubscribe@kafka.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org