TimeoutException: истекло время ожидания при получении метаданных темы Кафка

Вы можете использовать Lookahead и Lookbehind. Например:

System.out.println(Arrays.toString("a;b;c;d".split("(?<=;)")));
System.out.println(Arrays.toString("a;b;c;d".split("(?=;)")));
System.out.println(Arrays.toString("a;b;c;d".split("((?<=;)|(?=;))")));

И вы получите:

[a;, b;, c;, d]
[a, ;b, ;c, ;d]
[a, ;, b, ;, c, ;, d]

Последнее, что вы хотите.

((?<=;)|(?=;)) равно выбрать пустой символ до ; или после ;.

Надеюсь, что это поможет.

EDIT Замечания Фабиана Стейга о Readability действительны. Считываемость всегда является проблемой для RegEx. Одна вещь, я делаю, чтобы облегчить это - создать переменную, чье имя представляет то, что делает регулярное выражение, и использовать формат строки Java, чтобы помочь этому. Например:

static public final String WITH_DELIMITER = "((?<=%1$s)|(?=%1$s))";
...
public void someMethod() {
...
final String[] aEach = "a;b;c;d".split(String.format(WITH_DELIMITER, ";"));
...
}
...

Это немного помогает. :-D

1
задан Steephen 19 January 2019 в 05:53
поделиться

1 ответ

org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata

может произойти при попытке подключения к брокеру, ожидающему соединения SSL, а в конфигурации клиента не указано;

security.protocol=SSL 
0
ответ дан Anders Eriksson 19 January 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: