What I suggested was *not* to get the metadata from the zookeeper, but
simply the broker list, to avoid having a list brokers on the configuration.

This seems reasonable for installations that don't have access to a VIP.
One option is to support broker list and zookeeper and get the broker list
from zookeeper if not directly configured. Can you file a JIRA to start
this discussion?

Thanks,
Neha
On Oct 12, 2013 5:18 AM, "Bruno D. Rodrigues" <bruno.rodrig...@litux.org>
wrote:

> What I understood from Neha is that querying the metadata from one (any)
> kafka will return everything in one go. Querying the data indirectly via
> zookeeper would be more complicated and would involve more requests between
> the zookeeper and the brokers before being able to answer back.
>
> What I suggested was *not* to get the metadata from the zookeeper, but
> simply the broker list, to avoid having a list brokers on the
> configuration. Or more concretely, IMHO the producer and consumers should
> be consistent and allow either setting a list of zookeepers or a list of
> brokers.
>
> In both cases, independently of whatever action they need to do, they
> could ask a random broker for the information, or ask a random zookeeper
> for the list of brokers, and then a random broker.
>
> This for me would make it consistent and more professional. It would
> support using zookeeper or not. Would allow the developers to decide for
> themselves if they want to point to the brokers or to the zookeepers. But
> more importantly, if zookeeper is there to help the coordination of the
> brokers, the producers and consumers should rely on them to discover what
> they need to discover - the list of brokers.
>
> This way, one side pointing one way and the other side pointing a
> different way got me quite confused.
>
>
> A 12/10/2013, às 01:16, "hsy...@gmail.com" <hsy...@gmail.com> escreveu:
>
> > That's why I'm asking, I would like to see a kafka zookeeper client api
> to
> > get TopicMetadata instead of my own hacky way to query the zookeeper
> >
> > Thanks!
> > Best,
> > Siyuan
> >
> >
> > On Fri, Oct 11, 2013 at 4:00 PM, Bruno D. Rodrigues <
> > bruno.rodrig...@litux.org> wrote:
> >
> >> Why not ask zookeeper for the list of brokers and then ask a random
> >> broker for the metadata (and repeat if the broker is down), even if
> >> it's two calls.
> >>
> >> Heck it already does unnecessary connections. It connects to a broker,
> >> gets the metadata, disconnects, and then connects again for the data.
> >> If it's already assumed a producer or consumer will take some seconds
> >> until ready, what is another call gonna prejudice the flow.
> >>
> >> Then producers and consumers would then be consistently configured. Or
> >> allow the producers to also go to a broker instead of zookeeper.
> >>
> >> This way the consumer needs to know and hardcode at least one node.
> >> The node can fail. It can be changed.
> >>
> >> I thought zookeeper served to abstract this kind of complexity
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Bruno Rodrigues
> >> Sent from my iPhone
> >>
> >> No dia 11/10/2013, às 22:40, Neha Narkhede <neha.narkh...@gmail.com>
> >> escreveu:
> >>
> >>>>> For each consumer consumes different
> >>> topic/replica I have to specify those 20 brokers and go over all of
> them
> >> to
> >>> know which broker is alive. And even worse how about I dynamically add
> >> new
> >>> broker into the cluster and remove the old one
> >>>
> >>> TopicMetadataRequest is a batch API and you can get metadata
> information
> >>> for either a list of all topics or all topics in the cluster, if you
> >>> specify an empty list of topics. Adding a broker is not a problem since
> >> the
> >>> metadata request also returns the list of brokers in a cluster. The
> >> reason
> >>> this is better than reading from zookeeper is because the same
> operation
> >>> would require multiple zookeeper roundtrips, instead of a single
> >>> TopicMetadataRequest roundtrip to some kafka broker.
> >>>
> >>> Thanks,
> >>> Neha
> >>>
> >>>
> >>>> On Fri, Oct 11, 2013 at 11:30 AM, hsy...@gmail.com <hsy...@gmail.com>
> >> wrote:
> >>>>
> >>>> Thanks guys!
> >>>> But I feel weird. Assume I have 20 brokers for 10 different topics
> with
> >> 2
> >>>> partitions and  2 replicas for each. For each consumer consumes
> >> different
> >>>> topic/replica I have to specify those 20 brokers and go over all of
> >> them to
> >>>> know which broker is alive. And even worse how about I dynamically add
> >> new
> >>>> broker into the cluster and remove the old one. I think it's nice to
> >> have a
> >>>> way to get metadata from zookeeper(centralized coordinator?) directly.
> >>>>
> >>>> Best,
> >>>> Siyuan
> >>>>
> >>>>
> >>>> On Fri, Oct 11, 2013 at 9:12 AM, Neha Narkhede <
> neha.narkh...@gmail.com
> >>>>> wrote:
> >>>>
> >>>>> If, for some reason, you don't have access to a virtual IP or load
> >>>>> balancer, you need to round robin once through all the brokers before
> >>>>> failing a TopicMetadataRequest. So unless all the brokers in your
> >> cluster
> >>>>> are down, this should not be a problem.
> >>>>>
> >>>>> Thanks,
> >>>>> Neha
> >>>>>
> >>>>>
> >>>>> On Thu, Oct 10, 2013 at 10:50 PM, hsy...@gmail.com <hsy...@gmail.com
> >
> >>>>> wrote:
> >>>>>
> >>>>>> Hi guys,
> >>>>>>
> >>>>>> I'm trying to maintain a bunch of simple kafka consumer to consume
> >>>>> messages
> >>>>>> from brokers. I know there is a way to send TopicMetadataRequest to
> >>>>> broker
> >>>>>> and get the response from the broker. But you have to specify the
> >>>> broker
> >>>>>> list to query the information. But broker might not be available
> >>>> because
> >>>>> of
> >>>>>> some failure. My question is is there any api I can call and query
> >>>> broker
> >>>>>> metadata for topic/partition directly from zookeeper? I know I can
> >>>> query
> >>>>>> that information using zookeeper API. But that's not friendly
> >>>>> datastructure
> >>>>>> like the TopicMetadata/PartitionMetadata.  Thank you!
> >>>>>>
> >>>>>> Best,
> >>>>>> Siyuan
> >>>>
> >>
>
>

Reply via email to