Есть ли возможность настроить количество потоковых потоков для определенных тем, а не для всех?

В нашем приложении у нас есть несколько тем, где некоторые темы будут созданы с 16 разделами, а некоторые будут созданы с 1 разделом. Есть лиspring.cloud.stream.kafka.bindings свойство / возможность для достижения этой цели?

2 ответа

Может быть, это поможет: num.stream.threads создает незанятые потоки

Если есть один KafkaStreamsНапример, это невозможно, потому что Kafka Streams имеет только глобальную конфигурацию. Следовательно, вам потребуется несколько приложений, т. Е. НесколькоKafkaStreamsэкземпляры, которые обрабатывают разные темы ввода, чтобы настроить каждый с разным количеством потоков. Следуя ответу сверху, кажется, что потоки весенних облаков могут создавать несколькоKafkaStreams клиенты поддерживают то, что вы хотите.

Однако я не уверен, зачем вам это нужно / нужно (но я также не совсем уверен, как spring-cloud-stream переводит вашу программу)? В конце концов, распараллеливание выполняется на основе задач, и, таким образом, для разделов с одной входной темой только один из ваших потоков получит соответствующую задачу. Таким образом, вам не нужно беспокоиться о накладных расходах.

Для получения дополнительной информации посетите: https://docs.confluent.io/current/streams/architecture.html

Доступно несколько свойств раздела. Например,

spring.cloud.stream.bindings.func-out-0.producer.partitionKeyExpression=payload.id
spring.cloud.stream.bindings.func-out-0.producer.partition

Вы можете получить дополнительную информацию о свойствах конфигурации производителя и потребителя здесь.