Стартовое приложение Spring Cloud Stream для общего источника канала сообщений - PullRequest
0 голосов
/ 19 апреля 2019

Существует исходное приложение "кролик", которое прослушивает указанные очереди кроликов и генерирует сообщения, но я не смог найти источник "канала сообщений", который может быть связан с любым брокером сообщений, который предоставляет связыватель (Rabbit, Kafka, другие),Такой источник может иметь в качестве параметров «имя канала» и «имя группы потребителей», которые будут динамически связываться с указанным каналом и отправлять полученные сообщения в связанный выходной канал.

Я могу создать такое пользовательское приложение с исходным кодом, но так как это выглядит для меня как общая потребность, я задаюсь вопросом, почему его уже нет, и не понимаю ли я что-то базовое в «источниках»?

РЕДАКТИРОВАТЬ: Я думаю, источник, который будет прослушивать канал сообщений, имя которого указано в качестве свойства, а затем отправляет полученные сообщения в связанный выходной канал.В отличие от того, что делает приемник 'router', где выходной канал может быть задан динамически, здесь я хочу указать входной канал динамически.

Необходимость в этом возникла, когда одно приложение моего процессора создавало сообщения длянесколько выходных каналов, аналогично приемнику 'router'.Мне нужны другие потоки для обработки сообщений в этих каналах.

Скажем, процессор1 отправляет сообщения на вспомогательный канал, в дополнение к основному выходному каналу.Я думаю о создании потоков, подобных следующему:

source | processor1 --auxChannel=auxiliary-channel | normal-output-processor | normal-output-sink

channel --channelName auxiliary-channel --groupName mygroup | auxiliary-output-processor | auxiliary-output-sink

(Здесь «канал» - это предлагаемый источник канала)

Имеет ли это смысл или есть другой способ сделать это?

1 Ответ

1 голос
/ 19 апреля 2019

Благодаря комментарию Артема я разобрался, что делать. Нет необходимости в исходном приложении. Нам просто нужно использовать именованный канал, например:

source | processor1 --auxChannel=auxiliary-channel | normal-output-processor | normal-output-sink
:auxiliary-channel > auxiliary-output-processor | auxiliary-output-sink
...