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