grzegorz-wolszczak / kafka-message-tool

Simple GUI tool (javaFX) to faciliate sending/receiving messages to/from kafka broker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Kafka Message Tool (KMT)

Simple GUI tool (javaFX) to facilitate sending/receiving messages to/from Apache Kafka broker

Features

  • Display kafka broker configuration for each node in cluster
  • Show partition assignments to currently connected consumers (in consumer group)
  • Send multi-messages to kafka with scripted content manner (with groovy scripting)
  • Send messages (ProducerRecord) with user provided key
  • Find which topic partition will be chosen by kafka broker to put the message into
  • Each send/receive window can be detached

Example screenshots

  • BrokerView
  • BrokerView
  • TopicPropertiesView
  • TopicCreateDialogView
  • MessageSenderConfigurationWindow
  • MessageListenerConfigurationWindow

Build

  • To build the app just execute build gradle task. There should be kafka-message-tool<version>.jar file created in <project_dir>/build/libs directory

Run

  • To run the app just calljava -jar kafka-message-tool-<version>.jar New file with saved settings will appear in the same location as applicaiton jar file.

Versioning

  • The versioning scheme is as follows:
    • <AppVersion>-<MajorPatchVersion>-<MinorPatchVersion>-<FixVersion> e.g [v.1.2.4.5]
  • What 'major patch' or 'minor patch' mean ? It is arbitrary and related to effort amount that was invested in implementing particular functionality.

Credits

  • Thanks to RichtextFX for providing cool CodeArea gui component
  • Message syntax highlighting patterns for JSON were taken from JFXParser
  • Thanks to this page for copy TableView cell content code
  • Thanks to controlfx for textfield with autocomplection and other cool controls

Why another Kafka Apache tool ?
This application is mainly designed for testers/developers who want to quickly check/verify some kafka cluster properties (or send/receive few messages) without the need to use original console scripts provided with kafka installation. Obviously functionality of KMT is much more limited than original scripts in favour of simplicity and usability
The goals of creating this tool were:

  • No dependency to zookeeper
    • User should not be forced to provide zookeeper ip and port to work with kafka. Only ip and port of kafka cluster should be enough.
  • Application should be self sufficient - no additional 'servers' or backend should be required to use it.
  • No installation should be required. It should work out of the box. Just type java -jar <application.jar>

About

Simple GUI tool (javaFX) to faciliate sending/receiving messages to/from kafka broker

License:MIT License


Languages

Language:Java 97.7%Language:Groovy 1.8%Language:CSS 0.5%