Status

Current state:  Under Discussion

Discussion thread: here

JIRA:

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

Motivation

Currently tools in Kafka have three flavor of command line arguments:

  1. command line arguments using dot, e.g. --consumer.config
  2. command line arguments using dash --broker-list
  3. command line arguments using position 

#2 and #3 conforms to Unix standards while #1 does not.

Also, some tools always require config files for producer and consumer even when most people might just use default settings (ex. MirrorMaker).

And finally, some tools use a unique command line argument name for a command argument (ex. VerifyConsumerRebalance uses –zk to specify ZooKeeper URL while other tools use --zookeeper).

 

Proposed Changes

CommandOld Argument NameNew Argument NameReason For Change
kafka-console-consumer.shconsumer.configconsumer-configNot Unix Standard
kafka-consumer-offset-checker.shsocket.timeout.mssocket-timeout-msNot Unix Standard
kafka-consumer-offset-checker.shretry.backoff.msretry-backoff-ms Not Unix Standard
ExportZkOffsets.scalazkconnectzookeeperOne-off Name
ImportZkOffsets.scalazkconnectzookeeperOne-off Name
KafkaMigrationTool.javaconsumer.configconsumer-configNot Unix Standard
KafkaMigrationTool.javaproducer.configproducer-configNot Unix Standard
KafkaMigrationTool.javanum.producersnum-producersNot Unix Standard
KafkaMigrationTool.javanum.streamsnum-streamsNot Unix Standard
KafkaMigrationTool.javaqueue.sizequeue-sizeNot Unix Standard
kafka-mirror-maker.shconsumer.configconsumer-configNot Unix Standard
kafka-mirror-maker.shproducer.configproducer-configNot Unix Standard
kafka-mirror-maker.shnum.streamsnum-streamsNot Unix Standard
kafka-producer-perf-test.shrequest-num-acksrequest-required-acksOne-off Name
kafka-replay-log-producer.shinputtopicinput-topicOne-off Name
kafka-replay-log-producer.shoutputtopicoutput-topicOne-off Name
kafka-replica-verification.shtopic-white-listwhitelistOne-off Name
kafka-replica-verification.shreport-interval-msreporting-intervalOne-off Name
kafka-simple-consumer-shell.shfetchsizefetch-sizeOne-off Name
TestLogCleaning.scalazkzookeeperOne-off Name
VerifyConsumerRebalance.scalazookeeper.connectzookeeperOne-off Name
TestLinearWriteSpeed.scalacompressioncompression-codecOne-off Name
TestOffsetManager.scalathread-countthreadsOne-off Name
TestOffsetManager.scalareporting-interval-msreporting-intervalOne-off Name

 

Note that the following additional command line argument standardizations will be tracked via KAFA-2111 but are not part of this KIP since they are less invasive:

Compatibility, Deprecation, and Migration Plan

Rejected Alternatives

None