2017-07-24 76 views
0

我們正在使用Ignite的分佈式數據結構 - IgniteQueue。請在下方找到服務器詳細信息Ignite:持續到服務器停止

服務器1:初始化隊列並連續運行。

服務器2:生產者。生成內容到隊列中。立即開始

服務器3:消費者。使用隊列中的內容。立即開始

問題:當生產者和消費者之間存在10分鐘的時間差時,隊列中的數據就會丟失。

您能否提供正確的配置[驅逐],使隊列中的內容持續存在,直到服務器1停止?

最終應該不會有任何數據丟失。

在此先感謝。

+0

這聽起來像一個bug,請你分享我們有一個複製者?像小POM項目會顯示這個問題? – Michael

回答

1

排隊沒有驅逐。並且默認情況下沒有備份,所以很可能當您啓動和停止服務器時,會導致重新平衡並最終導致某些條目丟失。我建議執行以下操作:

  • 啓動消費者和生產者作爲客戶端而不是服務器。保存數據的服務器拓撲應始終儘可能穩定。
  • 使用CollectionConfiguration#setBackups爲隊列中使用的基礎高速緩存配置一個或多個備份。這將有助於保持狀態,即使其中一臺服務器出現故障。
+0

它的作品!非常感謝Valentin Kulichenko :) – Raghav

0

完成按瓦倫丁Kulichenko的評論如下

服務器1:初始化隊列和連續運行。

客戶1:生產者。生成內容到隊列中。立即開始

客戶2:消費者。使用隊列中的內容。現在開始,然後

代碼,使的Ignite客戶:

Ignition.setClientMode(真)

VAL點燃= Ignition.start()