I am setting up a Kafka 3.6.1 cluster with three nodes and have created two separate systemd service files—one for the Kafka controller and another for the broker. The controller is running on port 9093
, and the broker is also configured to use 9092
.
Currently, I am using controller.properties for the controllers and server.properties for the brokers. However, I noticed that Kafka 3.6.1 (and later versions) allow using a single server.properties file for both roles by specifying process.roles=controller
or process.roles=broker
.
Questions:
- What is the industry best practice for configuring controllers and brokers in Kafka 3.6.1+?
- Should I continue using separate properties files, or is it recommended to merge everything into a single
server.properties
file? - Are there any advantages or disadvantages to either approach in terms of manageability, scalability, or performance?