Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用gemfire通过集群传输数据_Java_Gemfire_Spring Data Gemfire - Fatal编程技术网

Java 使用gemfire通过集群传输数据

Java 使用gemfire通过集群传输数据,java,gemfire,spring-data-gemfire,Java,Gemfire,Spring Data Gemfire,我已经为我的用例寻找了解决方案,但没有找到正确的解决方案,所以期待着进一步探索一些好的想法 我有两个gemfire(版本8.2)集群(私有和公共),每个集群存储110+GB数据,而不持久保存到diskstore。私有集群从DB获取数据,并通过WAN网关将条目传输到公共,直到两个集群都联机。我有一个用例,我只重新启动公共集群,但之后它会丢失数据,为了重新填充数据,我必须重新启动私有集群,并将数据从DB加载到私有集群,然后通过WAN传输数据 我无法从数据库中填充公共集群,因为它会将负载加载到我的主数

我已经为我的用例寻找了解决方案,但没有找到正确的解决方案,所以期待着进一步探索一些好的想法

我有两个gemfire(版本8.2)集群(私有和公共),每个集群存储110+GB数据,而不持久保存到diskstore。私有集群从DB获取数据,并通过WAN网关将条目传输到公共,直到两个集群都联机。我有一个用例,我只重新启动公共集群,但之后它会丢失数据,为了重新填充数据,我必须重新启动私有集群,并将数据从DB加载到私有集群,然后通过WAN传输数据

我无法从数据库中填充公共集群,因为它会将负载加载到我的主数据库上,这将影响其他应用程序

我尝试过多种解决方案

首先:从私有集群导出数据集,然后导入到公共集群;但这会断开私有集群gemfire节点的连接,因为它在每个区域中存储了大量数据,而且我对下载大量数据的磁盘空间也有限制

第二:我可能会从公共集群公开一个JMXbean。然后,我可以运行一个客户端程序,调用私有集群中的gemfire函数,该函数通过JMX迭代条目并将条目放入公共集群,但我的组织基础设施不允许我在gemfire节点中公开JMX bean

第三个:与第二个一样,gemfire功能可以通过队列将数据传输到公共集群,队列似乎在工作,但有其自身的局限性。队列只能传输1MB的文本消息,因此我需要专门处理大型对象,并且数据传输包括不必要的序列化和反序列化(JSON文本消息)

我是否可以要求私有集群通过WAN网关或任何其他有人建议我探索的解决方案重新传输所有数据。

您可以在这个开源项目中尝试“gemtouch”


它听起来与idea 2非常相似,但不需要公开JMX bean。它确实像gfsh一样使用JMX。如果这是一个问题,您可以很容易地删除JMX的使用,因为它只使用JMX来检索区域列表。

我也有同样的问题,但使用3个Geode集群(每个集群位于不同的位置)

当其中一个集群中发生异常情况时,我们需要使用现有的两个剩余集群之一进行恢复:

  • 如果我们“触摸”其中一个集群,这意味着所有这些信息将复制到需要恢复的集群,但也复制到另一个实际上正常的集群。也许这没关系,不会造成任何损害,但我希望能有任何意见
  • 如果我们继续在剩下的两个集群上运行流量,而在其中一个集群上运行GemTouch,我想集群之间可能会出现一些一致性问题,但不确定
  • 最后一个主题是关于gemfire toolkit的许可证。实际上,没有许可证文件,所以我不能100%确定该工具是否可以使用

谢谢Randy,乍一看它对我来说很有希望,我将进一步探索它,以发现我的用例的可行性。我参考了gemtouch代码,并根据我的要求进行了相应的修改,效果很好。关于一致性的第二点,我相信在分区区域的情况下,这种情况永远不会发生。当您使用gemtouch时,条目将排队等待WAN网关,如果同时该记录有任何更改,则保存maser副本的服务器节点将处理更改。因此,在这两种情况下,相同的服务器节点将按顺序处理重复的记录。