我在一个 Java EE 应用程序中工作,它需要太多的内存服务器端应用程序级数据(即它不是用户级数据)。通过应用程序级别的数据,我的意思是所有用户的数据都是不变的,例如主数据。到目前为止,我们在一台具有 16 GB RAM 的 Windows 服务器上为 15-20 个并发用户使用 EHCache。我们为我们的应用程序指定堆大小为 8GB。
现在我们需要重新设计应用程序,使其能够支持超过 500 个并发用户。这将导致更多的内存数据需求。
我想在这种情况下有你的观点,以便应用程序具有足够的可扩展性。
据我了解,以下解决方案可以提供帮助-
实施负载平衡,以便分配负载,但每个服务器上的内存数据仍然很高,因为它是应用程序级别的数据。虽然会在一定程度上有所帮助。
将此实现为无状态操作,而不是将数据保存在缓存中。但这会对性能产生影响。我在某处读到无状态是可扩展性的关键。我想避免这种情况,因为这需要太多的工作。
将 Terracotta 的 BigMemory 与 EHCache 结合使用。它基本上以一种特殊的方式将数据保存在磁盘上,即数据访问速度仍然不错。请注意,这不是免费产品,我们有这样的免费选项吗?
选择基于云的内存架构?对此不是很清楚。
任何建议将不胜感激。