很抱歉,如果标题令人困惑,请让我解释一下我的问题。
我们的团队需要开发Web服务,假设它运行在几个nodes
上(Web场 - 水平扩展)。我们知道如何“手动”实现这一点,但我们对Spring Integration
非常感兴趣,这对我们来说是新的 - 所以我们真的想要了解这是否适合我们的场景 - 如果是这样我们会尝试利用它。
典型情景:
nodes
”)(我们称之为“OurWebService
”)InboundExtSystems
”)UtilityExtServices
”)OutboundExtSystems
”)非功能性要求:
UtilityExtServices
- 本地处理也是CPU密集型的。所以我们需要排队,以便控制我们执行请求和处理结果的速度InboundExtSystems
拉出的每个排队任务都将被处理 - 我们需要保证它们都不会消失。requeue
”这项任务(并确保之前处理的不会提交此任务的结果) 所以问题:spring integration
完全适合这种情况吗?
如果答案为“是”,您能否主要说出我们应该主要使用的主要组件?
P.S。当然,我们可能还需要选择一些消息总线和每个节点可以访问的队列(可能是redis,hazelcast或者也许是rabbitmq,不确定什么更合适)
答案 0 :(得分:3)
Yes, it's a good fit. I would suggest rabbitmq for the transport/queuing and the Spring Integration AMQP enpoints.
Rolling updates shouldn't be an issue unless you change the format of the messages sent between nodes). But even then you could handle it relatively easily by moving to a new set of queues.