Spring integration 正在查找具有自动应答或无应答的TCPINBundGateway
我是一个服务的客户,该服务通过套接字将XML文档以firehose方式流式传输给我。一旦建立了连接,我就不会收到任何消息,我的代码也会拼命跟上传入的数据 为此,我在客户端模式下使用Spring integration 正在查找具有自动应答或无应答的TCPINBundGateway,spring-integration,Spring Integration,我是一个服务的客户,该服务通过套接字将XML文档以firehose方式流式传输给我。一旦建立了连接,我就不会收到任何消息,我的代码也会拼命跟上传入的数据 为此,我在客户端模式下使用tcp入站网关: 我的连接工厂包括一个自定义反序列化器,它检测流式XML上的开始和结束标记,以将流切分为文档。每个文档都被发送到下游的socketInChannel,供其他组件处理 所有这些都是有效的……但我发现我并没有足够快地从套接字中提取数据。我最终意识到,我像时钟一样每10秒处理一条信息。因此,我立即将回
tcp入站网关
:
我的连接工厂包括一个自定义反序列化器,它检测流式XML上的开始和结束标记,以将流切分为文档。每个文档都被发送到下游的socketInChannel
,供其他组件处理
所有这些都是有效的……但我发现我并没有足够快地从套接字中提取数据。我最终意识到,我像时钟一样每10秒处理一条信息。因此,我立即将回复超时
归咎于tcp入站网关
。把数字降到100,瞧,我能跟上
现在,我对其工作原理的最佳猜测是,tcp入站网关
正在等待我的下游组件的回复,但没有收到任何回复。当我最小化回复超时时
,它会很快放弃等待回复,并从套接字转到下一条消息
这似乎不是一个理想的解决方案。由于firehose不需要我的响应,所以我的网关将每条消息转发到队列通道中,以便从中提取解耦的消费者代码
是否有办法将tcp入站网关
配置为不需要回复?如果没有,在队列通道中推送传入消息,然后自动确认的最干净的方法是什么?使用
而不是
通道适配器专门用于单向集成场景,而网关通常用于请求/应答