基於我自己的實驗(無法在任何地方找到這個文件),如果2個消息具有相同的相關ID和序列號,聚合器將只取第一個消息,丟棄/忽略其他消息。在春季覆蓋具有相同相關ID和序列號的消息
有沒有辦法讓聚合器使用接收到的最後一條消息呢?
聚合將合併有效載荷爲1個字符串。
簡單情形: 3個消息具有相同的相關ID和2序列大小,按時間排序接收
- 序列#:1;有效載荷:abc
- 序列號:1;有效載荷:def
- 序列號:2;有效載荷:GHI
電流輸出:abcghi
預期輸出:defghi
當序列#2是缺失的,其是指用於第一消息這種情況發生。相關ID(從解碼的有效載荷中獲得)非常有限,因此它將被多次使用。
原始消息
原始消息來以這種格式:
- 「序列大小」, 「序列號」, 「ID」, 「文本」
- ID之間0的範圍-9
- 示例消息:2,1,8,ABC
樣品原料messag e淨荷:
- 2,1,8,ABC
- 2,1,8,高清
- 2,2,8,GHI
的聚合基本上結合了文本
謝謝加里! 建議,我目前正在搞清楚如何定製這個(使用非默認)主要是覆蓋相同的序列的消息。 和FYI,是它的一個必須爲我的情況重用correlationId,因爲它是從消息的有效載荷派生,我無法操縱。 我已經使用了組超時,但它沒有按照我的預期行事。你可以參考我的另一個問題: http://stackoverflow.com/questions/30421220/group-timeout-does-not-work-as-expected-in-spring-aggregator/30424784 將盡快更新。 – psyntium
糾正我,如果我在這裏錯了,correlatestrategy只是告訴哪個消息屬於哪個組,並且releasestragy是要告訴分組消息何時可以繼續下一個路徑。我的重點應放在自定義消息組上,以便消息具有相同的seq。號碼將覆蓋舊的號碼。我錯了嗎? – psyntium
你有任何一個樣品自定義消息組存儲? – psyntium