Допустим, у нас есть приложение KafkaStreams, которое считывает данные из 2 исходных тем customerA.orders и customerB.orders. Каждая топи c имеет 3 раздела.
StreamsBuilder builder = new StreamsBuilder();
KStream stream1 = builder.stream("customerA.orders")
KStream stream2 = builder.stream("customerB.orders")
//Business logic which has stateless transformations.
Когда я запускаю это приложение, создается 6 задач, что ожидается (так как у нас есть 3 раздела для каждой топи c): текущие активные задачи: [0_0, 0_1, 1_0, 0_2, 1_1, 1_2]
Поскольку оба имени topi c оканчиваются на «.orders», я могу использовать регулярное выражение для чтения данных из исходных тем, как показано ниже
StreamsBuilder builder = new StreamsBuilder();
KStream stream1 = builder.stream(Pattern.compile(".*orders"))
Но когда я запускаю это приложение с помощью регулярных выражений, вместо 6 задач создаются только 3 задачи, хотя у нас есть 2 темы с 3 разделами в каждой: текущие активные задачи: [0_0, 0_1, 0_2]
* Приложение 1010 * streams получает сообщения из обеих тем.
Почему количество задач уменьшается, когда мы используем регулярное выражение для исходных тем?