spring.cloud.gcp.pubsub.subscriber.executor-threads
spring.cloud.gcp.pubsub.subscriber.parallel-pull-count
Эти два параметра конфигурации в Spring Cloud GCP идентичны setExecutorThreadCount
и setParallelPullCount
в клиентской библиотеке Pub / Sub * Java . Они контролируют поведение вашего Pub / Sub клиентского клиента.
parallel-pull-count
определяет, сколько потоков ваш клиентский клиент открывает для получения сообщений, а executor-threads
определяет, сколько потоков использует ваш клиентский клиент. обрабатывать обратные вызовы сообщений (когда сообщения подтверждаются, поэтому служба Pub / Sub больше не отправляет их вам). Например, если вы установите parallel-pull-count
на 2 и executor-threads
на 4, сообщения будут поступать через 2 потока, и 8 потоков будут заняты их обработкой. См. Параллельное управление для получения дополнительной информации.
spring.cloud.stream.bindings.<channelName>.consumer.concurrency
Вы правы, что этот параметр конфигурации предназначен только для определенных связывателей. Чтобы установить параллелизм в ваших группах потребителей, ваш производитель должен быть разделен. Однако привязка Spring Cloud Stream к Pub / Sub в настоящее время не поддерживает разбиение , поэтому вы не сможете установить параллелизм.
Я пытаюсь найти правильные параметры для настройки, чтобы определить, сколько сообщений можно обрабатывать параллельно в каждом экземпляре приложения.
Для достижения максимальной пропускной способности я будет работать с первыми двумя вариантами конфигурации, указанными выше, при этом также следует помнить, что сообщения, для обработки которых требуется больше времени, чем истекает срок их подтверждения, и служба Pub / Sub повторно доставит их.