【发布时间】:2013-08-30 16:29:19
【问题描述】:
我最近开始研究 Infinispan 作为我们的缓存层。在阅读下面提到的 Infinispan 中的操作模式后。
- 嵌入式模式:当您在与应用程序相同的 JVM 中启动 Infinispan 时。
- 客户端-服务器模式:当您启动远程 Infinispan 实例并使用各种不同的协议连接到它时。
首先,我现在很困惑,从上述两种模式中哪个最适合我的应用程序。
我有一个非常简单的用例,我们有一个客户端代码,它将使用服务的主 VIP 调用我们的 REST 服务,然后它将负载平衡到我们已经部署的个人 Service Server服务,然后它将与 Cassandra 数据库交互以根据用户 ID 检索数据。下图会让一切都清楚。
假设例如,如果客户端正在为 userId = 123 寻找一些数据,那么它将使用主 VIP 调用我们的 REST 服务,然后它将负载平衡到我们的四个服务服务器中的任何一个,假设它的负载平衡到Service1,然后service1会调用Cassandra数据库获取userId = 123的记录,然后返回给Client。
现在我们计划使用 Infinispan 缓存数据,因为压缩会降低我们的性能,以便我们的读取性能可以得到一些提升。所以我开始研究 Infinispan 并偶然发现了两种模式,如下所述。我不确定在我们的案例中使用 Infinispan 的最佳方式是什么。
其次,从 Infinispan 缓存中,我期望的是,如果我使用嵌入式模式,那么它应该看起来像这样。
如果是,那么 Infinispan 缓存将如何相互交互?有可能在某个时候,我们会为那些将在另一个服务实例 Infinispan 缓存上的用户 ID 寻找数据?正确的?那么在这种情况下会发生什么? infinispan 也会处理这些事情吗?如果是,那么我需要进行哪些配置设置才能确保这件事正常工作。
如果我遗漏了什么,请原谅我的无知。任何明确的信息都会让我对上述两个问题更加清楚。
【问题讨论】:
标签: java caching infinispan distributed-cache