Hi, I'm not sure about the high level consumer but I maintain a kafka consumer that can add and remove topics dynamically.
https://github.com/gerritjvv/kafka-fast see https://github.com/gerritjvv/kafka-fast/blob/master/kafka-clj/java/kakfa_clj/core/Consumer.java if you're using java/scala On Thu, Sep 10, 2015 at 3:48 PM, Helleren, Erik <erik.helle...@cmegroup.com> wrote: > So, there are several ways to do this. Lets assume the goal is to add > more topics to the application at runtime. And that this app is currently > written to be distributed via the magic of consumer groups. Sadly, I > don¹t think the High level consumer is well designed for this particular > use case. The app would have to poll using something like the topic list > script (bin/kafka-topics.sh --list Š), close the existing high level > consumer on a change, and start a new one. And then do this on all the > nodes of your application (Should be easier than doing it on just one > actually). This would result in a huge latency spike and a problem when > it comes to migrating the state involved in your example expectation. > > The next option still requires polling, but it needs a custom FT and > distribution scheme. There might need a leader so some things only happen > once. Just use the simple consumer API, and have one thread per > partition. The leader would have to tell a follower something like ³Start > listening to topic X, partition Y², which is risky and difficult to do. > > The simplest option, assuming that each topic is independent when it comes > to expectations, is don¹t go with a cluster. Just have a script/watcher > app that does the polling and then, when it detects new topics, for each > new topic: start a new instance of your app on a new box that listens to > that single topic. It might take a few seconds to startup, but its easy > to code, easy to maintain, and easy to understand. Which makes for a more > resilient application. > -Erik > > > > From: Joris Peeters <j.peet...@wintoncapital.com> > Reply-To: "users@kafka.apache.org" <users@kafka.apache.org> > Date: Thursday, September 10, 2015 at 6:09 AM > To: "users@kafka.apache.org" <users@kafka.apache.org> > Subject: automatically consume from all topics > > > Hello, > > Is there a simple way to set up a consumer that automatically picks up all > the topics for all the partitions, dynamically extending its range as new > topics get created? > > The underlying idea is that we want to have a few over-arching consumers > (I¹m aware that¹s not great for the scalability, but that¹s not such a > concern at present), to > - > Gather various statistics, metrics, system pressure, Š and dispatch to the > appropriate monitoring systems, > - > Apply some end-to-end business-logic testing, to continuously assert > certain expectations (e.g. ³if this-sort-of message arrived, then we > expect that-sort-of-message to be received within this time² etc). > > > I¹m sure I can piece something together that does this, but perhaps it > comes out of the box. (Couldn¹t find it, though). > We¹re using the Java client and Kafka 8.2.1. > > Joris Peeters > Developer > > Research and Data Technology > T: > +44 (0) 20 8576 5800 > > Winton > Grove House > 27 Hammersmith Grove > London W6 0NE > > wintoncapital.com <http://www.wintoncapital.com/> > > <http://www.wintoncapital.com/> > > > > > > Winton Capital Management Limited (³Winton²) is a limited company > registered in England and Wales with its registered offices at 16 Old > Bailey, London, EC4M 7EG (Registered Company No. 3311531). > Winton is authorised and regulated by the Financial Conduct Authority in > the United Kingdom, registered as an investment adviser with the US > Securities and Exchange Commission, registered with the US Commodity > Futures Trading Commission and a member of the > National Futures Association in the United States. > This communication, including any attachments, is confidential and may be > privileged. This email is for use by the intended recipient only. If you > receive it in error, please notify the sender and > delete it. You should not copy or disclose all or any part of this email. > This email does not constitute an offer or solicitation and nothing > contained in this email constitutes, and should not be construed as, > investment advice. Prospective investors should request offering > materials and consult their own advisers with respect to investment > decisions and inform themselves as to applicable legal requirements, > exchange control regulations and taxes in the countries of their > citizenship, residence or domicile. Past performance is > not indicative of future results. > Winton takes reasonable steps to ensure the accuracy and integrity of its > communications, including emails. However Winton accepts no liability for > any materials transmitted. Emails are not secure > and cannot be guaranteed to be error free. > >