Основываясь на моих собственных экспериментах (не можете найти это в любом месте), если 2 сообщения, имеющие одинаковый идентификатор корреляции и порядковый номер, агрегатор будет принимать только первое сообщение и отбросить/проигнорировать другое сообщение.Перезапись сообщений с одинаковым идентификатором корреляции и порядковым номером весной
Есть ли способ заставить агрегатор использовать последнее сообщение, полученное вместо этого?
Агрегация объединит полезную нагрузку в 1 строку.
Простой сценарий: 3 сообщения с такими же ID корреляции и размером последовательности 2, упорядоченное по времени получил
- последовательности #: 1; полезная нагрузка: abc
- последовательность #: 1; полезная нагрузка: def
- последовательность #: 2; Полезная нагрузка: ГХИ
Токовый выход: abcghi
Ожидаемый выход: defghi
Этот сценарий происходит, когда последовательность # 2 отсутствует, который предназначен для 1-го сообщения. И идентификатор корреляции (полученный из декодированной полезной нагрузки) очень ограничен, поэтому он будет использоваться несколько раз.
Первоначальное сообщение
Необработанные сообщения пришли в следующем формате:
- "Последовательность Размер", "порядковый номер", "ID", "Текст"
- ID колеблется между 0 -9
- пример сообщение: 2,1,8, а
образец сырого Сообщ е полезной нагрузка:
- 2,1,8, а
- 2,1,8, Защита
- 2,2,8, ГХИ
Агрегатор в основном объединить текст
спасибо, гэри! Как я уже сказал, в настоящее время я выясняю, как настроить это (используя нестандартные), главным образом, при перезаписи сообщений с одинаковой последовательностью. и FYI, да, это необходимо для моего случая повторного использования корреляции, поскольку он получен из полезной нагрузки сообщения, с которой я не могу манипулировать. Я использовал групповой тайм-аут, но он не ведет себя так, как я ожидал. Вы можете обратиться к другому моему вопросу здесь: http://stackoverflow.com/questions/30421220/group-timeout-does-not-work-as-expected-in-spring-aggregator/30424784 скоро обновится , – psyntium
исправьте меня, если я ошибаюсь здесь, корреляционная стратегия только для того, чтобы указать, какое сообщение принадлежит какой группе, а release - это указать, когда сгруппированные сообщения могут перейти к следующему пути. и мой фокус должен быть с пользовательской группой сообщений, чтобы сообщение с одним и тем же номером. номер перезапишет старый. Я ошибаюсь? – psyntium
, если у вас есть образец магазина групповой группы сообщений? – psyntium