我们有一个基于 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。
我们需要实时显示策略状态。
通过将其添加到队列中,不保证推送策略。
如果有人可以帮助这个用例如何处理会有所帮助?
向负载均衡器添加更多服务器是唯一的选择还是其他?