Приложения Spring Cloud Stream - Передача информации между этапами - PullRequest
0 голосов
/ 30 апреля 2018

Может кто-нибудь предложить мне способы передачи метаданных между шагами канала SCDF? Вот некоторые примеры использования, которые я пытаюсь рассмотреть:

  1. Сведения о файле, такие как имя, каталог, размер и т. Д., Передаются на следующий шаг при использовании источника 'file'.
  2. Я хочу, чтобы некоторые метаданные, созданные на шаге процесса, были переданы на следующий шаг. (Эти метаданные отделены от полезной нагрузки)

Я надеюсь, что есть способ отправить такие подробности в заголовках сообщений кролика или кафки.

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете / должны использовать заголовки сообщений. Помните, что вы управляете возвращаемым значением метода-обработчика. Если ваш метод-обработчик возвращает POJO, то платформа создаст из него Сообщение, копирующее определенные заголовки и т. Д. Однако, в вашем случае, если вы хотите контролировать все, что входит в Сообщение (включая заголовки), все, что вам нужно, это определить метод-обработчик, который возвращает сообщение (см. ниже):

@StreamListener(..)
@SendTo(..)
public Message<?> handle(String str) {
  . . .
  return MessageBuilder.withPayload(..).setHeader(..).setHeader(..).build();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...