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