我正在开发一个客户端通过websockets连接的应用程序,并且有几个模块通过服务器端的消息传递进行互连。服务器需要具有可扩展性,具有高性能,并且可以在以后轻松获得高可用性。我们希望将服务器端逻辑拆分为模块,并且只需通过消息进行连接。所以稍后我们可以将模块完全移植到不同的VM。我们还需要(稍后)保留模块发送/接收的消息。传入消息的速率也可能高于模块可以在其上工作的速率,因此我们需要在模块的末端进行缓冲(可能是队列)。 ActiveMQ看起来可以服务于我们的目的,但所有地方都将其描述为仅在分布式应用程序中使用。我们不是。使用ActiveMQ在应用程序中的模块之间进行通信是否过度?欢迎任何建议。
注意:我们在应用程序中使用Spring启动,Java,Websockets。
答案 0 :(得分:1)
在Java EE Web应用程序中,将JMS子系统用于内部应用程序通信是很常见的。这样可以轻松扩展应用程序(或为可能性做好准备......),并且是将异步事件排队以进行处理的便捷方式。
您的要求似乎非常相似,这是ActiveMQ imho的合法用例。