Как отправить сообщение адресату из задачи потока данных Spring Cloud?

#spring-cloud-stream #spring-cloud-dataflow #spring-rabbit #spring-cloud-task

#spring-cloud-stream #spring-cloud-поток данных #spring-rabbit #spring-cloud-task

Вопрос:

Существует ли правильный / предпочтительный способ отправки сообщения из задачи в пункт назначения с использованием потока данных Spring Cloud?

У нас есть существующий поток с адресатами, и мы хотели бы, чтобы запланированная задача также передавала сообщения в поток через один из адресатов.

Варианты, которые мы рассматривали до сих пор:

  1. Создайте новый поток с приложением-источником http для отправки в адресат, а затем используйте шаблон rest в задаче для отправки данных в источник http. Проблема с этим подходом заключается в том, что ip-адрес для источника http может быть эфемерным, если поток / pod будет перераспределен.
  2. Вручную настройте rabbit в задаче для отправки сообщений непосредственно адресату (exchange). Проблема с этим подходом заключается в том, что он кажется немного грязным и может быть неправильным использованием базовой системы обмена сообщениями, которую использует поток / потоки данных.

Ответ №1:

Я не вижу никаких реальных проблем с # 2, но вы также можете настроить привязку вывода и использовать StreamBridge для отправки ему.

Отправка произвольных данных на вывод (например, внешние источники, управляемые событиями)