До сих пор я запускал zookeeper и kafka server из командной строки перед запуском моего приложения Spring Boot, но теперь мне нужно запустить их непосредственно из кода.
Во-первых, я пытался использовать ProcessBuilder внутри основного метода:
Process process = new ProcessBuilder("C:\\kafka_2.12-2.2.0\\bin\\windows\\zookeeper-server-start.bat",
"C:\\kafka_2.12-2.2.0\\config\\zookeeper.properties").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
Но это, похоже, не работает, поскольку на консоли ничего не печатается, и через некоторое время приложение выдает исключение TimeOutException.
Во-вторых, я бы хотел, чтобы сервер kafka работал после запуска Zookeeper; как этого добиться?