我想知道我是否可以就如何处理我面临的设计问题获得一些想法。为简单起见,假设我有 3 个端点在 Tomcat 上的 3 台不同的机器/jvm 上运行。端点具有以下职责:
端点 1 - 接收需求数据并将此数据转换为订单请求
端点 2 - 接受订单请求,保存订单并返回订单
端点 3 - 接受订单,格式化为供应商特定的 xml,并将其发送到队列。
编辑:这些端点作为当前服务存在,通过 REST 提供给其他客户端。我可以选择将 Atomikos 用于 JTA 事务管理器,并且我们正在使用 ActiveMQ。
话虽如此,我有一个接收需求数据消息的队列设置。对于每个收到的需求数据消息,我基本上想通过 XA 将它们汇集到一个工作单元中的 3 个端点中的每一个。我完全控制了 3 个端点中的每一个,因此我在它们可以使用的通信协议方面具有一定的灵活性。此外,最终每天将有大约 50 万到 100 万条此类消息进入。你们会使用什么通信协议在分布式事务中将这些端点联系在一起?
我对 Camel 有一些经验,但我对如何将它们结合在一个工作单元中感到困惑。RMI 是否会比 JMS 更合适,因为这在本质上似乎是同步的?提前感谢您提供的任何帮助。