我有一个Peer-Peer宝石拓扑结构,大约有15个对等体。我使用Spring-data-gemfire来初始化gemfire上下文,并且所有区域都被复制以便尽可能快地访问。
每个对等方只需要访问所有Gemfire区域的一小部分。我希望每个同行只在其需要的地区注册兴趣,并避免所有不必要的流量。有没有办法使用Spring-data-gemfire?
使用的版本: 春天3.2.1 Gemfire:6.6.3.2 Spring-data-gemfire:1.2.2
答案 0 :(得分:0)
"每个同伴只需要访问所有Gemfire地区的一小部分。"
由"小子集"你的意思是数据,或者事实上,只是确定" REPLICATE"区域?
如果是后者,那么只将对等成员配置为具有需要该Region(例如X)的REPLICATE Region(例如X)。例如......
成员A - REPLICATE区域X,Y,Z B成员 - REPLICATE X,Y 成员C - REPLICATE Region Z
然后,只有拥有REPLICATE Region的成员才能真正接收该Region的(全部)数据和事件。
如果你想控制Region的实际内容(即数据),那么默认情况下,REPLICATE Region是完全复制(全有或全无策略),因为它将所有数据/事件分发给所有成员托管该地区。或者用GemFire UG自己的话......
"复制区域始终从对等方接收所有事件,无需进一步配置。"
(http://gemfire.docs.pivotal.io/latest/userguide/developing/events/configure_p2p_event_messaging.html)
另请注意......没有"注册兴趣"同行的特色。注册兴趣在客户端和服务器之间。另一个客户/服务器"兴趣"类型选项是CQ。
但是,您可以使用不同的数据策略创建区域,并使用Subscription来仅获取所需的数据。例如。 ...
<gfe:partitioned-region id="X" ...>
<gfe:subscription type="CACHE_CONTENT"/>
</gfe:partitioned-region>
从技术上讲,你也可以使用,但我不确定在这种情况下会发生什么。实际上。
此外,我不确定客户注册兴趣和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
以及上面的链接了解更多详情。
希望这有帮助。