Thanks Colin for the suggestions! I have added metrics to track the number
of total messages being forwarded as a more generic monitoring. Right now
the list of metrics are:


   - num-client-forwarding-to-controller-rate
   - num-client-fowarding-to-controller-count
   - num-messages-redirected-rate
   - num-messages-redirected-count
   - request-forwarding-authorization-fail-count (Optional)

Let me know if we need to add more monitoring tags.

Boyang

On Fri, Apr 17, 2020 at 1:16 PM Colin McCabe <cmcc...@apache.org> wrote:

> On Thu, Apr 16, 2020, at 12:33, Jose Garcia Sancio wrote:
> > Hi Boyang,
> >
> > Thanks for the KIP. The KIP looks good. I have a few questions and
> comments.
> >
> > > As part of the KIP-500
> > <
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum
> >
> > initiative, we need to build a bridge release version of Kafka that
> > could
> > isolate the direct Zookeeper write access only to the controller.
> >
> > This may be outside the scope of this KIP but I am trying to understand
> how
> > this is going to be used to implement KIP-500. My understanding is that
> the
> > Admin client discovers the controller by performing a
> > Metadata{Request,Response} round trip. The response of this request
> > includes the id of the controller. Based on my understanding of the
> > KIP-500, this architecture will need to change.
>
> Hi Jose,
>
> Thanks for the questions.
>
> We're not proposing to change the MetadataRequest / MetadataResponse.  It
> will still work the same way that it always has from the perspective of
> clients.  We have to do this to maintain compatibility, I think.
>
> This does mean that controllers and brokers will occupy the same ID
> namespace, even when running in standalone controller mode.  I think that's
> OK, though.
>
> > For example the controller
> > will not necessarily be a broker in which case the id may not correlate
> to
> > a broker id. Is the expectation that the Kafka Controller Quorum (as
> > defined in KIP-500) will push this new connection information to all of
> the
> > brokers? Will the Kafka Controller Quorum expose and implement all of the
> > RPCs being redirected in this KIP and the ones that are currently routed
> to
> > the controller? These include:
> >
> > ListPartitionReassignment
> > AlterPartitionReassignment
> > ElectLeaders
> > CreatePartitions
> > DeleteTopics
> > CreateTopics
>
> Yes, the KIP-500 controller (quorum) will implement all of those RPCs.
>
> >
> > > AUTHORIZATION_FAILED if the inter-broker verification failed.
> >
> > The rest of the document mentions CLUSTER_AUTHORIZATION_FAILED.
> >
> > > For CLUSTER_AUTHORIZATION_FAILED, this indicates an internal error for
> > broker security setup which has nothing to do with the client, so we have
> > no other way but returning an UNKNOWN_SERVER_ERROR to the admin client.
> >
> > I don't understand this. I think I don't understand this because it is
> not
> > clear to me who, how and when authorization is going to work when using
> > Envelopre{Request,Response}. Can you please add a section that explains
> how
> > authorization works when envelopes are involved?
>
> The only way a broker would fail to authorize itself to another broker is
> if the ACLs were incorrectly set up for the cluster.  This would cause
> other problems beyond just making forwarding not work, though.
>
> This isn't really related to envelopes -- any time a broker makes an RPC
> to another broker, in theory the ACLs could be totally screwed up and we
> could get denied.  It clearly means that administrator made a mistake, but
> we still have to handle the case somehow.
>
> best,
> Colin
>

Reply via email to