#spring #spring-cloud-stream
#spring #spring-cloud-stream
Вопрос:
Мне нужно использовать динамические имена групп для приложения Multisink (multiple sinks) на основе RabbitMQ binder. Похоже, что свойство spring.cloud.stream.bindings ..group не может быть установлено во время выполнения.
Есть мысли о том, как это сделать? SPB: 2.2.8.RELEASE , spring-cloud-dependencies: Hoxton.SR6 , spring-cloud-stream-dependencies: Horsham.SR6
Спасибо,
Ответ №1:
Вы можете использовать там заполнитель свойств…
spring.cloud.stream.bindings.input-in-0.group=${group.prop:foo}
… а затем установите свойство в командной строке:
-Dgroup.prop=bar
Комментарии:
1. Спасибо, Гэри, название группы примерно такое: «сегментирование: альфа-бета @ server — 0». Есть какие-нибудь идеи, как избежать этого значения свойства?
2. В соответствии с разделением readme вы используете псевдонимное имя очереди, а не отдельные сегменты.
alpha
В этом случае это выглядит так; вы устанавливаете для группы значениеalpha
, устанавливаетеqueueNameGroupOnly=true
bindQueue=false
иdeclareExchange=false
. Если у вас есть сегменты на>1
узле, вам понадобится связующее для каждого. Согласно документам, вы можете использовать только локальные сегменты:How does it work? The plugin will chose the queue from the shard with the least amount of consumers, provided the queue contents are local to the broker you are connected to.