Thanks for the KIP Gantigmaa,

> { "name": "IncludeFencedBrokers", "type": "bool", "versions": "2+", "about": 
> "Whether to include fenced brokers." }

Did you consider making "includeFencedBroker" field value implicitly
based on the DescribeClusterRequest version and the EndpointType? For
example, if the request version is 2 and the endpoint type is broker,
the response will include all of the brokers and if they are fenced or
unfenced. I am suggesting this because a request of endpointType
controller and includeFencedBroker true doesn't make sense. In
general, users of the AdminClient cannot easily discover the API
versions supported by the destination node since the destination node
may not be known when the admin call is made.

> { "name": "Fenced", "type": "bool", "versions": "2+", "about": "Whether the 
> broker is fenced." }

It is unfortunate that this RPC is handled using the metadata cache.
That means that the user cannot find out when was the last time the
broker contacted the controller cluster. Knowing that a broker is
fenced is not enough information to determine to unregister a broker.
If the user knows that the broker has been fenced for hours or day, it
may be enough information to decide to unregister the cluster.

> kafka-cluster.sh --bootstrap-server localhost:9092 list-brokers

For this command to work, the user must pass --bootstrap-server. If
the user passes --bootstrap-controller, the controller nodes will get
listed instead. Are you planning to also implement "kafka-cluster
--bootstrap-controller <endpoints> list-controllers"? The other option
is to make the command "list-nodes" and it will list the controllers
or brokers based on the bootstrap server used. Or are you planning to
fix the controller side and broker side implementation so that
controller nodes can return registered brokers and broker nodes can
return registered controllers?

I guess the other option is to limit the kafka-cluster tool for
brokers and they must use the kafka-metadata-quorum tool for
controllers. What do you think?

> 2          broker-2  9092       fenced   → (Broker 2 has shutdown but still 
> registered)

Is the tool going to print the string "→ (Broker 2 has shutdown but
still registered)" to stdout?

Thanks,
-José

Reply via email to