+1, we can provide a minimal configuration file to users. It only contains the 
required config and a few commonly used configs.

The full configuration file can be named `broker.full.conf`, and it is used to 
provide a reference for users.

Thanks,
Kai
On Dec 13, 2022 at 9:03 PM +0800, Yunze Xu <y...@streamnative.io.invalid>, 
wrote:
> 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

Reply via email to