簡體   English   中英

使用 gemfire 通過集群傳輸數據

[英]Transferring data through clusters using gemfire

我已經為我的用例搜索了解決方案,但沒有得到正確的解決方案,因此期待進一步探索一些不錯的想法。

我有兩個 gemfire(8.2 版)集群(私有公共),每個集群存儲110+ GB 的數據,而無需持久化到磁盤存儲。 私有集群從 DB 獲取數據,並通過 WAN 網關將條目傳輸到公共,直到兩個集群都在線。 我有一個用例,我只重啟公共集群,但之后它會丟失數據並填充數據,我必須重新啟動私有集群並將數據從數據庫加載到私有集群,然后通過 WAN 傳輸數據。

我無法從數據庫填充公共集群,因為它會將負載加載到我的主數據庫上,這會影響其他應用程序。

我嘗試了多種解決方案。

第一:從私有集群導出數據集,然后導入到公共集群; 但這會斷開私有集群 gemfire 節點的連接,因為它在每個區域存儲大量數據,而且我對下載大量數據的磁盤空間也有限制。

第二:我可能會從公共集群公開 JMX bean。 然后,我可以運行一個客戶端程序,該程序調用私有集群中的 gemfire 函數,該程序通過 JMX 迭代條目並將條目放入公共集群,但我的組織基礎設施不允許我在 gemfire 節點中公開 JMX bean。

第三:與第二個一樣,gemfire 功能可以通過隊列將數據傳輸到公共集群,這似乎是有效的,但有其自身的局限性。 隊列只能傳輸 1MB 的文本消息,因此我需要專門處理大對象,而且數據傳輸包括不必要的序列化和反序列化(JSON 文本消息)。

無論如何,我是否可以要求私有集群通過 WAN 網關或任何其他人可以建議我探索的解決方案重新傳輸所有數據。

您可以在這個開源項目gemfire-toolkit 中嘗試“gemtouch”。

這聽起來與想法 2 非常相似,但它不需要公開 JMX bean。 它確實像 gfsh 一樣使用 JMX。 如果這是一個問題,您可以輕松刪除 JMX 的使用,因為它僅使用 JMX 來檢索區域列表。

我有同樣的問題,但使用 3 個 Geode 集群(每個在不同的位置)。

當其中一個集群發生奇怪的事情時,我們需要使用現有的 2 個剩余集群之一來恢復它:

  • 如果我們“接觸”其中一個集群,這意味着所有這些信息都將復制到需要恢復的集群,但也會復制到實際上正常的另一個集群。 可能沒問題,不會造成任何損害,但我會很感激任何意見。
  • 如果我們繼續在其余 2 個集群上運行流量,而其中一個我們正在運行 GemTouch,我猜可能會出現集群之間的一些一致性問題,但不確定。
  • 最后一個主題是關於 gemfire-toolkit 的許可證。 實際上,沒有 LICENSE 文件,所以我不能 100% 確定該工具是否可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM