작은 뇌용량 탓에 가끔씩 kafka 명령어 쓰려고 할 때마다 구글링하는게 귀찮아서 간단한 배치 스크립트 만들어보았습니다.
@echo off
set BROKER=KAFKA_IP
set CURR_PATH=%cd%
set KAFAK_BIN=KAFKA_HOME\bin\windows
cd %KAFAK_BIN%
:start
set t=
cls
echo.
echo ==============================
echo 1. producer
echo 2. consumer
echo 3. topic list
echo 4. topic describe
echo H. kafka cmd cheat sheet
echo 0. Exit
echo ==============================
echo.
set /p x=input :
if %x%==1 goto producer
if %x%==2 goto consumer
if %x%==0 goto exit
if %x%==3 goto topic_list
if %x%==4 goto topic_desc
if /i %x%==h goto cheat_sheet
goto start
:producer
set /p t=producer topic :
echo producer %t%
call kafka-console-producer.bat --bootstrap-server %BROKER% --topic %t%
cls
pause
goto start
:consumer
set /p t=consumer topic :
echo consumer %t%
call kafka-console-consumer.bat --bootstrap-server %BROKER% --topic %t%
cls
pause
goto start
:topic_list
call kafka-topics.bat --bootstrap-server %BROKER% --list
pause
goto start
:topic_desc
set /p t=describe topic :
echo description %t%
call kafka-topics.bat --bootstrap-server %BROKER% --topic %t% --describe
rem timeout 5
pause
goto start
:cheat_sheet
start chrome https://gist.github.com/sahilsk/d2a6ec384f5f2333e3fef40a581a97e1
goto start
:exit
cd %CURR_PATH%
exit /b
참고로 kafka 클라이언트용으로 일부 명령만 사용하려는 경우(가령, 토픽 생성, 토픽 목록 보기, 정도)에는 kafka 배포본 중 아래 파일들만 있으면 되는듯.
├── bin
│ └── windows
│ ├── kafka-console-consumer.bat
│ ├── kafka-console-producer.bat
│ ├── kafka-run-class.bat
│ └── kafka-topics.bat
├── config
│ └── tools-log4j.properties
└── libs
├── jopt-simple-5.0.4.jar
├── kafka-clients-3.1.0.jar
├── kafka-raft-3.1.0.jar
├── kafka-storage-3.1.0.jar
├── kafka_2.13-3.1.0.jar
├── log4j-1.2.17.jar
├── scala-java8-compat_2.13-1.0.0.jar
├── scala-library-2.13.6.jar
├── scala-logging_2.13-3.9.3.jar
├── slf4j-api-1.7.30.jar
└── slf4j-log4j12-1.7.30.jar
4 directories, 16 files