This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current state[One of "Under Discussion", "Accepted", "Rejected"]

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]

JIRA: here [Change the link from KAFKA-1 to your own ticket]

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

Most data systems provide client tools to connect the data server to inspect data and they will use localhost as the default server(if not specified), for example, `mysql` command will use localhost:3306 if -p and -h are not specified and `zkCli.sh` will use localhost:2181 if -server is not specified, this is convenient when debugging data.

We need to specify --bootstrap-server parameter in almost all command-line tools, which means we would connect to the target server using the ssh command, so it's nicer if we use localhost:9092 as the default bootstrap-server in these commands.

Public Interfaces

This KIP change an argument of several command-line tools, we already supported--bootstrap-server/broker-list/zookeeper in command-line tools, we will use localhost:9092 as default value if none of these params provided.

Command Name

StatusChanges Needed
kafka-acls.sh      Supports only --bootstrap-server add default value 

kafka-broker-api-versions.sh 

Supports only --bootstrap-server   add default value 
kafka-cluster.sh    Supports only --bootstrap-server   add default value 
kafka-configs.sh    Supports both --zookeeper and --bootstrap-server  add default value  if none of -zookeeper and --bootstrap-server provided
kafka-console-consumer.sh    Supports only --bootstrap-server    add default value 
kafka-console-producer.sh   Supports --bootstrap-server and --broker-list add default value  if none of -broker-list and --bootstrap-server provided
kafka-consumer-groups.sh  Supports only --bootstrap-server    add default value 
kafka-consumer-perf-test.sh   Supports --bootstrap-server and --broker-list    add default value  if none of -broker-list and --bootstrap-server provided
kafka-delegation-tokens.sh   Supports only --bootstrap-server    add default value 
kafka-delete-records.sh  Supports only --bootstrap-server    add default value 
kafka-dump-log.sh    Supports no server    none
kafka-features.sh   Supports only --bootstrap-server    add default value 
kafka-get-offsets.sh    Supports --bootstrap-server and --broker-list    add default value  if none of -broker-list and --bootstrap-server provided
kafka-leader-election.sh  Supports only ---bootstrap-server    add default value 
kafka-log-dirs.sh    Supports only ---bootstrap-server    add default value 
kafka-metadata-shell.sh   Supports no server args    none
kafka-producer-perf-test.sh  Supports no server args    none
kafka-reassign-partitions.sh   Supports only --bootstrap-server     add default value 
kafka-replica-verification.sh  Supports only --broker-list   add default value 

kafka-run-class.sh
kafka-server-start.sh
kafka-server-stop.sh
kafka-storage.sh

Supports no server args   none
kafka-streams-application-reset.sh  Supports only --bootstrap-server     add default value 
kafka-topics.sh  Supports only --bootstrap-server     add default value 
kafka-transactions.sh    Supports only --bootstrap-server     add default value 
kafka-verifiable-consumer.sh
kafka-verifiable-producer.sh   
Supports --bootstrap-server and --broker-list    add default value  if none of -broker-list and --bootstrap-server provided
trogdor.sh    Supports no server args    none
zookeeper-security-migration.sh
zookeeper-server-start.sh
zookeeper-server-stop.sh
zookeeper-shell.sh    
Supports only --zookeeper    none


Proposed Changes

New implementation all these commands does not change the interactions between the tool and the brokers, the only change is they can be used without --bootstrap-server(or broker-list) 

  1. For commands supports only --bootstrap-server, they will be used without --bootstrap-server and localhost:9092 is the default value.
  2. For commands supports only --broker-list, they will be used without --broker-list and localhost:9092 is the default value.
  3. For commands supports both --bootstrap-server and --broker-list,  localhost:9092 is the default value if both --bootstrap-server and --broker-list are not provided.
  4. For commands supports both --zookeeper and --broker-list,  localhost:9092 is the default value if both --bootstrap-server and --zookeeper are not provided.

Compatibility, Deprecation, and Migration Plan

This is a compatible change and any old client tools will still be working normally.

Rejected Alternatives

For client tools supports only --zookeeperl, use localhost:2181 as default zookeeper address, I don't think this is worth doing since KIP-500 is removing all zookeeper code.

  • No labels