gpt4 book ai didi

java - 当您的应用程序部署到云时,符合 JCache 标准的分布式缓存如何工作?

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:23 25 4
gpt4 key购买 nike

请注意:如果这个问题中提到的缓存系统的工作方式彼此完全不同,以至于几乎不可能回答这个问题,那么我会将这个问题简化为仅兼容 JCache (JSR107) 的任何问题。

分布式缓存游戏中的主要参与者(至少对于 Java 而言)是 EhCache , HazelcastInfinispan .

首先,我对分布式缓存的理解是,它是存在于正在运行的 JVM 进程内的缓存,但会不断地在其他地方运行的其他多个 JVM 进程之间同步其内存内容。因此,进程 1 (P1) 在机器 1 (M1) 上运行,P2M2 上运行,P3M3 上运行。同一分布式缓存的一个实例正在所有 3 个进程上运行,但它们以某种方式都相互了解,并且能够保持缓存彼此同步。

相信 EhCache 通过 JGroups 实现了进程间同步。 。不确定其他人在使用什么。

此外,我的理解是这些配置是有限制的,因为对于每个节点/实例/进程,您必须配置它并告诉它系统中的其他节点/实例/进程,以便它们都可以彼此同步缓存。像这样的事情:

<cacheConfig>
<peers>
<instance uri="myapp01:12345" />
<instance uri="myapp02:12345" />
<instance uri="myapp03:12345" />
</peers>
</cacheConfig>

首先,如果我所说的任何内容不正确或有误导性,请先纠正我!

假设我或多或少步入正轨,那么我很困惑分布式缓存如何在节点由自动缩放器调节的弹性/云环境中工作。一分钟后,负载达到峰值,有 50 个虚拟机为您的应用程序提供服务。因此,您需要在配置中定义 50 个“对等实例”。然后下一分钟,负载就会减少到爬行,您只需要 2 或 3 个负载平衡节点。由于“对等实例”的数量始终在变化,因此无法在静态配置文件中正确配置系统。

所以我问:如果运行的进程/实例的数量永远不固定,分布式缓存如何在云上工作?

最佳答案

解决该问题的一种方法是使用一个外部(几乎静态)缓存集群来保存数据,并且您的应用程序(或前端服务器)使用客户端连接到该集群。您仍然可以根据需要扩展或缩小缓存集群,但大多数时候,您在缓存集群中需要的节点数量少于您需要的前端服务器数量。

关于java - 当您的应用程序部署到云时,符合 JCache 标准的分布式缓存如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com