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
Build
- To build the app just execute
build
gradle task. There should bekafka-message-tool<version>.jar
file created in<project_dir>/build/libs
directory
Run
- To run the app just call
java -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>