I started writing this up on the wiki https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Command+Line+and+Related+Improvements
Instead of starting a new thread I figure just continue this one I started. I also added another (important) component for centralized management of configuration as "global level" much like we have topic level. These global configuration would be overridden (perhaps not all) from the server.properties on start (so like in case one broker needs a different port, sure). <<One concern I have is that using RQ/RP wire protocol to the controller instead of the current way (via ZK admin path) may expose concurrency on the admin requests, which may not be supported yet. Guozhang, take a look at the diagram how I am thinking of this it would be a new handle request that will execute the tools pretty much how they are today. My thinking is maybe to-do one at a time (so TopicCommand first I think) and have what the TopicCommand is doing happen on server and send the RQ/RP to the client but execute on the server. If there is something not supported we will of course have to deal with that and implement it for sure. Once we get one working end to end I think adding the rest will be (more or less) concise iterations to get it done. I added your concern to the wiki under the "gotchas" section. /******************************************* Joe Stein Founder, Principal Consultant Big Data Open Source Security LLC http://www.stealth.ly Twitter: @allthingshadoop <http://www.twitter.com/allthingshadoop> ********************************************/ On Mon, Oct 20, 2014 at 2:15 AM, Guozhang Wang <wangg...@gmail.com> wrote: > One concern I have is that using RQ/RP wire protocol to the controller > instead of the current way (via ZK admin path) may expose concurrency on > the admin requests, which may not be supported yet. > > Some initial discussion about this is on KAFKA-1305. > > Guozhang > > On Sun, Oct 19, 2014 at 1:55 PM, Joe Stein <joe.st...@stealth.ly> wrote: > > > Maybe we should add some AdminMessage RQ/RP wire protocol structure(s) > and > > let the controller handle it? We could then build the CLI and Shell in > the > > project both as useful tools and samples for others. > > > > Making a http interface should be simple after KAFKA-1494 is done which > all > > client libraries could offer. > > > > I will update the design tonight/tomorrow and should be able to have > > someone starting to work on it this week. > > > > /******************************************* > > Joe Stein > > Founder, Principal Consultant > > Big Data Open Source Security LLC > > http://www.stealth.ly > > Twitter: @allthingshadoop > > ********************************************/ > > On Oct 19, 2014 1:21 PM, "Harsha" <ka...@harsha.io> wrote: > > > > > +1 for Web Api > > > > > > On Sat, Oct 18, 2014, at 11:48 PM, Glen Mazza wrote: > > > > Apache Karaf has been doing this for quite a few years, albeit in > Java > > > > not Scala. Still, their coding approach to creating a CLI probably > > > > captures many lessons learned over that time. > > > > > > > > Glen > > > > > > > > On 10/17/2014 08:03 PM, Joe Stein wrote: > > > > > Hi, I have been thinking about the ease of use for operations with > > > Kafka. > > > > > We have lots of tools doing a lot of different things and they are > > all > > > kind > > > > > of in different places. > > > > > > > > > > So, what I was thinking is to have a single interface for our > tooling > > > > > https://issues.apache.org/jira/browse/KAFKA-1694 > > > > > > > > > > This would manifest itself in two ways 1) a command line interface > 2) > > > a repl > > > > > > > > > > We would have one entry point centrally for all Kafka commands. > > > > > kafka <CMD> <ARGS> > > > > > kafka createTopic --brokerList etc, > > > > > kafka reassignPartition --brokerList etc, > > > > > > > > > > or execute and run the shell > > > > > > > > > > kafka --brokerList localhost > > > > > kafka>use topicName; > > > > > kafka>set acl='label'; > > > > > > > > > > I was thinking that all calls would be initialized through > > > --brokerList and > > > > > the broker can tell the KafkaCommandTool what server to connect to > > for > > > > > MetaData. > > > > > > > > > > Thoughts? Tomatoes? > > > > > > > > > > /******************************************* > > > > > Joe Stein > > > > > Founder, Principal Consultant > > > > > Big Data Open Source Security LLC > > > > > http://www.stealth.ly > > > > > Twitter: @allthingshadoop < > http://www.twitter.com/allthingshadoop> > > > > > ********************************************/ > > > > > > > > > > > > > > > > > > -- > -- Guozhang >