Spring integration Spring集成:从可轮询通道接收重复消息

Spring integration Spring集成:从可轮询通道接收重复消息,spring-integration,Spring Integration,我声明了一个可轮询的channel.request,在将通道的paylod转换为一个对象之后,我注意到一些消息被复制到ServiceActivator 我的代码如下: <int:channel id="channel.request"> <int:queue capacity="10"/> </int:channel> <int:header-enricher input-channel="updateImsi.channel" outp

我声明了一个可轮询的channel.request,在将通道的paylod转换为一个对象之后,我注意到一些消息被复制到ServiceActivator

我的代码如下:

<int:channel id="channel.request">
    <int:queue capacity="10"/>
</int:channel>
<int:header-enricher input-channel="updateImsi.channel"
    output-channel="updateImsi.channel.withHeader">
    <int:header name="content-type" value="application/json" />
    <int:header name="msisdn" expression="payload.split('${separator}')[0]" />
</int:header-enricher>

<int:transformer input-channel="updateImsi.channel.withHeader"
    output-channel="channel.request" ref="imsiMsgTransformer"
    method="transform">
</int:transformer>

<int:service-activator input-channel="channel.request"
ref="updateImsiHttpResponseMessageHandler" method="handleMessage">
<int:poller fixed-delay="1000"></int:poller>
</int:service-activator>

来自服务激活器和转换器的跟踪:

变压器:m2

serviceactivator有效负载:m2

变压器:m3

变压器:m4

变压器:m5

serviceactivator有效负载:m4

serviceactivator有效负载:m4


serviceactivator有效负载:m4

每当出现这样的调试问题时,最简单的方法就是打开org.springframework.integration的调试日志并遵循消息流。确保在日志中包含线程名称。如果你还是搞不清楚发生了什么,就把日志贴出来

从您的“跟踪”中,我的“最佳”猜测是服务激活器或转换器不是线程安全的