gpt4 book ai didi

java - 将复杂对象图放入 gemfire 区域

转载 作者:行者123 更新时间:2023-11-30 09:03:59 26 4
gpt4 key购买 nike

我对 GemFire 有点陌生。我有一个疑问。在这里:

我有以下对象图 (1 &2),如下所示:

  1. ObjA 有 ObjB 有 ObjC
  2. ObjX 有 ObjY 有 ObjC

同一个 ObjC 实例与 ObjB 和 ObjY 关联现在我将 ObjA 和 ObjX 放在 gemfire 区域,R。

我的问题是,在区域 R 中是否会有同一个 ObjC 的两个实例,还是只有一个?如果有两个实例,那么有没有办法在区域 R 中有一个实例?

最佳答案

在最初的 Region.put(ObjA) 和/或 Region.put(ObjX) 调用中(假设您的应用程序是“对等缓存”,而不是具有 PROXY 或 CACHING_PROXY 区域的客户端),将只有 1 个实例由 ObjA(通过 ObjB)和 ObjX(通过 ObjY)间接引用。

但是,当 GemFire 通过分发“复制”ObjA 和 ObjX 时(如 REPLICATE 或 PARTITION 区域的情况,这里严格来说是服务器端),则 ObjC 将在接收端“复制”。

这主要是由于 ObjA/ObjX 在复制和分发到集群中也托管同一区域的其他成员期间通过网络发送时必须“序列化”。客户端/服务器交互(即与 PROXY 和 CACHING_PROXY 客户端区域)之间也是如此。

唯一不会出现这种情况的情况是区域仅在本地并且不分发它的数据或事件(尽管它仍然可以配置为接收数据事件)。

这里可以引用GemFire的UG来控制“反/序列化”机制...

http://gemfire.docs.pivotal.io/latest/userguide/developing/data_serialization/chapter_overview.html

具体来说,通过将 GemFire 自己的序列化策略与 PDX (http://gemfire.docs.pivotal.io/latest/userguide/developing/data_serialization/gemfire_pdx_serialization.html) 一起使用,并可能实现您自己的 PdxSerializer (http://gemfire.docs.pivotal.io/latest/userguide/developing/data_serialization/use_pdx_serializer.html) 或让您的域对象实现 PdxSerializable (http://gemfire.docs.pivotal.io/latest/userguide/developing/data_serialization/use_pdx_serializable.html),您将获得最大的 yield 。 ), 尽管更具侵入性。

关于java - 将复杂对象图放入 gemfire 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405827/

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