Hi Kamal,

I think the broker.id property has been replaced with the `node.id` property
in KRaft.  The documentation for `node.id` says it is required (
https://github.com/apache/kafka/blob/72e275f6ea867747e6b4e524c80d5ebd726ac25b/core/src/main/scala/kafka/server/KafkaConfig.scala#L741),
and the QuickStart files all use it (
https://github.com/apache/kafka/tree/72e275f6ea867747e6b4e524c80d5ebd726ac25b/config/kraft).
It is technically true that these two configs are treated as synonyms of
one another (
https://github.com/apache/kafka/blob/72e275f6ea867747e6b4e524c80d5ebd726ac25b/core/src/main/scala/kafka/server/KafkaConfig.scala#L1587-L1597),
so if you specify either one the process will still recognize it and
start.  But it makes sense to exclusively use `node.id` in KRaft because a
node isn't necessarily a broker anymore; it could be a controller (or even
a combined broker+controller).

Thanks,
Hailey

On Mon, Oct 2, 2023 at 1:17 PM Hailey Ni <h...@confluent.io> wrote:

> Hi Ismeal,
>
> Thanks for the comments. I'll change the implementation to use a pair of
> mutually exclusive args --process.roles and --node.id.
>
> Thanks,
> Hailey
>
> On Mon, Oct 2, 2023 at 6:34 AM Ismael Juma <m...@ismaeljuma.com> wrote:
>
>> Hi Ron,
>>
>> Yes, that's what I am proposing, yes.
>>
>> Ismael
>>
>> On Sat, Sep 30, 2023 at 2:30 PM Ron Dagostino <rndg...@gmail.com> wrote:
>>
>> > Thanks, Ismael.  I think you are proposing a pair of mutually exclusive
>> > args --process.roles and --node.id, right?  I agree that is more
>> > user-friendly than the --required-config arg, and it comes at the
>> possible
>> > expense of generality.  So that’s the tradeoff between the two, I think.
>> > No other config comes to mind now that we’ve identified these two.  I
>> think
>> > the two specific and mutually exclusive parameters would be the way to
>> go
>> > unless someone else identifies still more options that people might
>> want.
>> >
>> > Did I get that right, or were you proposing something different?
>> >
>> > Ron
>> >
>> > > On Sep 30, 2023, at 10:42 AM, Ismael Juma <m...@ismaeljuma.com> wrote:
>> > >
>> > > Hi,
>> > >
>> > > Thanks for the KIP. I think this approach based on configs is a bit
>> too
>> > > open ended and not very user friendly. Why don't we simply provide
>> flags
>> > > for the things a user may care about? So far, it seems like we have
>> two
>> > > good candidates (node id and process role). Are there any others?
>> > >
>> > > Ismael
>> > >
>> > >> On Fri, Sep 29, 2023 at 6:19 PM Hailey Ni <h...@confluent.io.invalid>
>> > wrote:
>> > >>
>> > >> Hi Ron,
>> > >>
>> > >> I think you made a great point, making the "name" arbitrary instead
>> of
>> > >> hard-coding it will make the functionality much more flexible. I've
>> > updated
>> > >> the KIP and the code accordingly. Thanks for the great idea!
>> > >>
>> > >> Thanks,
>> > >> Hailey
>> > >>
>> > >>
>> > >>> On Fri, Sep 29, 2023 at 2:34 PM Ron Dagostino <rndg...@gmail.com>
>> > wrote:
>> > >>>
>> > >>> Thanks, Hailey.  Is there a reason to restrict it to just
>> > >>> process.roles and node.id?  Someone might want to do
>> > >>> "--required-config any.name=whatever.value", for example, and at
>> first
>> > >>> glance I don't see a reason why the implementation should be any
>> > >>> different -- it seems it would probably be easier to not have to
>> worry
>> > >>> about restricting to specific cases, actually.  WDYT?
>> > >>>
>> > >>> Ron
>> > >>>
>> > >>> On Fri, Sep 29, 2023 at 5:12 PM Hailey Ni <h...@confluent.io.invalid
>> >
>> > >>> wrote:
>> > >>>>
>> > >>>> Updated. Please let me know if you have any additional comments.
>> Thank
>> > >>> you!
>> > >>>>
>> > >>>> On Thu, Sep 21, 2023 at 3:02 PM Hailey Ni <h...@confluent.io>
>> wrote:
>> > >>>>
>> > >>>>> Hi Ron. Thanks for the response. I agree with your point. I'll
>> make
>> > >> the
>> > >>>>> corresponding changes in the KIP and KAFKA-15471
>> > >>>>> <https://issues.apache.org/jira/browse/KAFKA-15471>.
>> > >>>>>
>> > >>>>> On Thu, Sep 21, 2023 at 1:40 PM Ron Dagostino <rndg...@gmail.com>
>> > >>> wrote:
>> > >>>>>
>> > >>>>>> Hi Hailey.  No, I just looked, and zookeeper-server-stop does not
>> > >> have
>> > >>>>>> any facility to be specific about which ZK nodes to signal.  So
>> > >>>>>> providing the ability in kafka-server-stop to be more specific
>> than
>> > >>>>>> just "signal all controllers" or "signal all brokers" would be a
>> > >> bonus
>> > >>>>>> and therefore not necessarily required.  But if it is easy to
>> > >> achieve
>> > >>>>>> and doesn't add any additional cognitive load -- and at first
>> glance
>> > >>>>>> it does seem so -- we should probably just support it.
>> > >>>>>>
>> > >>>>>> Ron
>> > >>>>>>
>> > >>>>>> On Wed, Sep 20, 2023 at 6:15 PM Hailey Ni
>> <h...@confluent.io.invalid
>> > >>>
>> > >>>>>> wrote:
>> > >>>>>>>
>> > >>>>>>> Hi Ron,
>> > >>>>>>>
>> > >>>>>>> Thank you very much for the comment. I think it makes sense to
>> me
>> > >>> that
>> > >>>>>> we
>> > >>>>>>> provide an even more specific way to kill individual
>> > >>>>>> controllers/brokers.
>> > >>>>>>> I have one question: does the command line for ZooKeeper cluster
>> > >>> provide
>> > >>>>>>> such a way to kill individual controllers/brokers?
>> > >>>>>>>
>> > >>>>>>> Thanks,
>> > >>>>>>> Hailey
>> > >>>>>>>
>> > >>>>>>> On Tue, Sep 19, 2023 at 11:01 AM Ron Dagostino <
>> rndg...@gmail.com
>> > >>>
>> > >>>>>> wrote:
>> > >>>>>>>
>> > >>>>>>>> Thanks for the KIP, Hailey.  It will be nice to provide some
>> > >>>>>>>> fine-grained control for when people running the broker and
>> > >>> controller
>> > >>>>>>>> this way want to stop just one of them.
>> > >>>>>>>>
>> > >>>>>>>> One thing that occurs to me is that in a development
>> environment
>> > >>>>>>>> someone might want to run multiple controllers and multiple
>> > >>> brokers
>> > >>>>>>>> all on the same box, and in that case they might want to
>> > >> actually
>> > >>> stop
>> > >>>>>>>> just one controller or just one broker instead of all of them.
>> > >>> So I'm
>> > >>>>>>>> wondering if maybe instead of supporting kafka-server-stop
>> > >>>>>>>> [--process.roles <value>] we might want to instead support
>> > >>>>>>>> kafka-server-stop [--required-config <name=value>].  If someone
>> > >>> wanted
>> > >>>>>>>> to stop any/all controllers and not touch the broker(s) they
>> > >> could
>> > >>>>>>>> still achieve that by invoking kafka-server-stop
>> > >> --required-config
>> > >>>>>>>> process.roles=controller.  But if they did want to stop a
>> > >>> particular
>> > >>>>>>>> controller they could then also achieve that via
>> > >> kafka-server-stop
>> > >>>>>>>> --required-config node.id=1 (for example).  What do you think?
>> > >>>>>>>>
>> > >>>>>>>> Ron
>> > >>>>>>>>
>> > >>>>>>>> On Thu, Sep 14, 2023 at 5:56 PM Hailey Ni
>> > >>> <h...@confluent.io.invalid>
>> > >>>>>>>> wrote:
>> > >>>>>>>>>
>> > >>>>>>>>> Hi all,
>> > >>>>>>>>>
>> > >>>>>>>>> I would like to start the discussion about *KIP-979: Allow
>> > >>>>>> independently
>> > >>>>>>>>> stop KRaft controllers or brokers* <
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>
>> > >>>
>> > >>
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-979%3A+Allow+independently+stop+KRaft+controllers+or+brokers
>> > >>>>>>>>>>
>> > >>>>>>>>> It proposes adding an optional field "--process.roles <value>"
>> > >>> in
>> > >>>>>> the
>> > >>>>>>>>> script to allow users to independently stop either KRaft
>> > >> broker
>> > >>>>>> processes
>> > >>>>>>>>> or controller processes. While in the past, all processes were
>> > >>>>>> killed
>> > >>>>>>>> using
>> > >>>>>>>>> a single script.
>> > >>>>>>>>> Please let me know if you have any questions or comments. Much
>> > >>>>>>>> appreciated.
>> > >>>>>>>>>
>> > >>>>>>>>> Thanks & Regards,
>> > >>>>>>>>> Hailey
>> > >>>>>>>>
>> > >>>>>>
>> > >>>>>
>> > >>>
>> > >>
>> >
>>
>

Reply via email to