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 | Status | Changes 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 | 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)
- For commands supports only --bootstrap-server, they will be used without --bootstrap-server and localhost:9092 is the default value.
- For commands supports only --broker-list, they will be used without --broker-list and localhost:9092 is the default value.
- 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.
- 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.