For example, when running a standalone (without TLS enabled), only the following configs are required:
```properties brokerServicePort=6650 webServicePort=8080 allowLoopback=true clusterName=standalone managedLedgerDefaultEnsembleSize=1 managedLedgerDefaultWriteQuorum=1 managedLedgerDefaultAckQuorum=1 ``` Actually only these two ports and `clusterName` are needed, other configurations can be configured with a default values for standalone. However, I found there are over 600 configurations in the `standalone.conf`: ```bash $ grep "^[^#]" conf/standalone.conf | wc -l 629 ``` Thanks, Yunze Xu On Tue, Dec 13, 2022 at 8:53 PM Yunze Xu <y...@streamnative.io> wrote: > > Hi all, > > As more people joined the development of Pulsar and more PIPs are > opened, I found the configurations became very large. At the moment > for commit 9917aac, there are 426 configuration items in broker.conf, > which is too many. > > ```bash > $ grep "^[^#]" conf/broker.conf | wc -l > 426 > ``` > > For beginners, finding the real useful configs from the `broker.conf` > is hard. For developers, it's also bad. For example, the IDE code > completion works significantly slower for a method of > `ServiceConfiguration` than other classes. > > Let's look at Apache Kafka, there are only 17 configs in the server > configuration file. > > ```bash > kafka_2.13-3.3.1$ grep "^[^#]" config/server.properties | wc -l > 17 > ``` > > I think this difference makes Pulsar far more complicated to customize > than Kafka, or than Pulsar should be. > > I have an idea that we can split `ServiceConfiguration` into different > configuration classes. Some configs that are not commonly used should > be moved into another configuration file. Just a brainstorm, does > anyone else have better ideas? > > Thanks, > Yunze