0

我们有一个基于 Spring 的具有多层架构的应用程序。

图层按此顺序

Rest
Service
DB Layer

全部捆绑在一个.war文件中并部署在里面Apache Tomcat 7

我们有 Rest API,它在服务层做一些系列的工作并返回响应。

例如:

Policy Push API 将进行合规性检查、验证和推送数据并记录在 DB 中并向用户显示 msg。这个过程大约需要 2 秒分钟。

几天前,我们的服务器开始崩溃。在检查时,我们发现我们达到了大约 2000 个请求/秒,tomcat无法处理。

为了克服这个问题,我们添加Nginx Loadbalancer了 3 个实例。

它在某种程度上是稳定的,但我觉得它只是一个修复。

我正在研究Kafka,RabbitMQ作为一种选择。但在这种情况下,问题将是Request 将添加到队列中,并且响应将返回给 User

我们需要实时显示策略状态。

通过将其添加到队列中,不保证推送策略。

如果有人可以帮助这个用例如何处理会有所帮助?

向负载均衡器添加更多服务器是唯一的选择还是其他?

4

0 回答 0