我有一个特定的场景,我们想使用 Coherence 作为 Sitributed 缓存。我将在这里描述。
- 我有 20 多个独立进程,它们将不断地将数据放入缓存中。它们的频率各不相同,尽管这不是问题。
- 以及 2 个将从这些缓存中读取数据的进程。
- 除了连贯性提供的方式外,我不需要任何基础数据库。数据将被写入缓存并从缓存中读取。
- 我有 4 个节点集群可供我使用(无论成本约束),并且一致性集群将位于不同的盒子上(无论是基础设施约束),并且缓存的填充部分和读取部分都将位于不同的 nmachines 上。
- 每天缓存的峰值内存大小将徘徊在最大 6 GB 左右,最小为 2 GB。缓存将只有每日数据,我将有单独的归档过程来模拟继续归档它。关键是缓存大小现在只有这个大小。可以说我要把日期排除在关键方程之外。
- 虽然想探索我是否可以将更多存储到这 4 个节点中。现在它的简单序列化,可以探索其他 nbinary 格式。或者我应该明确地使用这个大小的缓存?
- 我的读写操作在一天中相当分散。这意味着读取和写入将继续由这 2 个读取客户端和 20 多个写入客户端进行。它不像其中之一更多。尽管在所有后台进程中都有一个启动批处理,但它比之后的连续推送更多地推送到缓存。但持续推送也会推送大量数据。
现在我关于上述几点的问题(也因为一些混乱)
- 最大的一个是有人告诉我,我的连接数量有限,具体取决于我们购买的节点。所以他说如果它是 4 个,理想情况下你应该最多只有 4 个连接。所以,开发一种看门人的应用程序,什么不是。即使我们使用 TCP Extend。现在从我目前的阅读来看,我不这么认为。是吗?关键是如果它真的不是约束,就不想那样做。
换句话说,通过代理服务的连接是否有限制取决于集群中的节点?
仅与上述有关的一些内容。在最大情况下,只有当我采用扩展方式时,我才会在推送缓存时对性能造成一些损失,对吗?
分区缓存/近缓存。由于读取时间以及最更新缓存都非常关键。(我最讨厌的问题)。
真的很想看看使用 POF 可以获得的好处,而不是说序列化/externalizatble/protobuf。coherence 可以开箱即用地支持 protobuf 吗?(以后可能会)