我正在尝试使用spring integration和amqp(rabbitmq)在spring批处理中实现远程分块。
我无法理解ChunkMessageChannelItemWriter如何在下面的远程分块测试中收集回复
它是如何工作的?它是否发送一条消息,等待其回复,收到其回复,然后再发送第二条消息,等待第二条消息回复并接收第二条消息回复等等?
或者它以异步方式发送所有消息并等待回复,然后在回复频道上收到回复?
如果我们在这里提到远程分块文档
它使用入站和出站适配器。如果ChunkMessageChannelItemWriter收到回复,为什么我们需要适配器?在奴隶方面,为什么使用适配器和服务激活器?
任何人都可以帮助我理解它是如何工作的,因为它很难从文档中理解。
答案 0 :(得分:0)
这只是一个测试案例 - 一切都在本地运行 - 请查看JMS test case以获得更真实的示例。通道项编写器使用出站通道适配器将所有块发送到JMS。
远程端(jms侦听器容器)接收块,处理它们并将回复发送到replies
队列。
每次调用编写器编写块时,如果超出限制,它会检查回复并暂停,等等。
当写完所有块时,在afterStep()
中,它会等待其余的结果。
这一切都与本地测试用例相同,因为块处理程序将回复写入队列通道。