0

我有一个 Peer-Peer gemfire 拓扑,大约有 15 个对等点。我使用 Spring-data-gemfire 来初始化 gemfire 上下文,并且所有区域都被复制以实现最快的访问。

每个对等点只需要访问所有 Gemfire 区域的一小部分。我希望每个对等方仅在其需要的区域中注册兴趣,并避免所有不必要的流量。有没有办法使用 Spring-data-gemfire 做到这一点?

使用的版本:Spring 3.2.1 Gemfire:6.6.3.2 Spring-data-gemfire:1.2.2

4

1 回答 1

0

“每个对等点只需要访问所有 Gemfire 区域的一小部分。”

您所说的“小子集”是指数据还是实际上只是某些“复制”区域?

如果是后者,那么只配置一个对等成员以拥有需要该区域(例如 X)的 REPLICATE 区域(例如 X)。例如...

成员 A - 复制区域 X、Y、Z 成员 B - 复制区域 X、Y 成员 C - 复制区域 Z

然后,只有那些拥有 REPLICATE 区域的成员才会真正接收该区域的(所有)数据和事件。

如果您想控制区域的实际内容(即数据),那么要知道,默认情况下,REPLICATE 区域是完全复制(全有或全无策略),因为它将所有数据/事件分发给托管该区域的所有成员. 或者用 GemFire UG 自己的话来说......

“复制区域始终接收来自对等方的所有事件,无需进一步配置。”

http://gemfire.docs.pivotal.io/latest/userguide/developing/events/configure_p2p_event_messaging.html

另请注意……同行没有“注册兴趣”功能。注册兴趣位于客户端和服务器之间。另一个客户端/服务器“兴趣”类型选项是 CQ。

但是,您可以创建具有不同数据策略的区域并使用订阅仅获取您想要的数据。比如...

<gfe:partitioned-region id="X" ...>
  <gfe:subscription type="CACHE_CONTENT"/>
</gfe:partitioned-region>

从技术上讲,您也可以使用 with,但实际上我不确定在这种情况下会发生什么。

此外,我不确定客户端注册兴趣和 CQ 在 GemFire 中使用对等订阅时为您提供的更细粒度的控制。我在这方面的知识有限。

看...

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

和...

http://gemfire.docs.pivotal.io/latest/userguide/developing/events/how_cache_events_work.html

以及上面的链接以获取更多详细信息。

希望这可以帮助。

于 2014-08-20T19:05:25.627 回答