Caching UI和后端数据库之间的负载平衡web应用程序,缓存选项?

Caching UI和后端数据库之间的负载平衡web应用程序,缓存选项?,caching,nginx,load-balancing,Caching,Nginx,Load Balancing,我不是开发人员……我们的开发人员创建了一个存在于前端UI和后端数据库之间的java应用程序。它主要在用户界面请求时查询数据库,并将所述查询的结果返回到用户界面-为了提高性能,它还被写入缓存所述查询一段特定的时间 为了吸引大量用户,有人建议我们创建一个负载平衡解决方案(开源,因为我们是一个小型初创企业,目前没有任何预算)。所以我实现了Nginx,它工作得很好,但是性能立即受到了巨大的影响。我们推断这是因为运行java应用程序的每个节点只缓存它专门分配的查询(通过round-robin/Nginx)

我不是开发人员……我们的开发人员创建了一个存在于前端UI和后端数据库之间的java应用程序。它主要在用户界面请求时查询数据库,并将所述查询的结果返回到用户界面-为了提高性能,它还被写入缓存所述查询一段特定的时间

为了吸引大量用户,有人建议我们创建一个负载平衡解决方案(开源,因为我们是一个小型初创企业,目前没有任何预算)。所以我实现了Nginx,它工作得很好,但是性能立即受到了巨大的影响。我们推断这是因为运行java应用程序的每个节点只缓存它专门分配的查询(通过round-robin/Nginx),而没有访问其他实例上的缓存的权限


现在,由于我们没有大量的用户涌入(而且可能一段时间内不会),我已经恢复到只运行应用程序的单个实例。然而,我正在努力寻找解决这个问题的最佳方法,任何建议/意见都将不胜感激

Nginx可以根据各种参数保持会话的粘性,例如,从另一个方面来说,您有更好的选择来缓存响应,或者专门用于确认,到底是什么问题?负载平衡配置不会返回一致的结果,因为缓存有不同的值?是的,基本上应用程序的每个实例只缓存它负责的信息(缓存限制为20分钟)。这反过来会增加用户在不同实例中轮换时的搜索时间(由于负载平衡),而这些实例没有缓存以前的信息,并且从最终用户的角度来看,这会导致整体性能下降。Nginx可以根据各种参数保持会话粘性,例如,从另一方面来说,您有一个更好的选择来缓存响应,或者专门用于确认,到底是什么问题?负载平衡配置不会返回一致的结果,因为缓存有不同的值?是的,基本上应用程序的每个实例只缓存它负责的信息(缓存限制为20分钟)。当用户在没有缓存以前的信息的不同实例中轮换时(由于负载平衡),这反过来会增加搜索时间,并从最终用户的角度导致总体性能下降。