2011-03-14 51 views
1

我需要在Java中同步兩組較大的字符串,其中一個在客戶端,另一個在服務器上。客戶端很可能缺少一些應該從服務器接收的條目。我不想傳輸所有成員,我想盡量減少通信和服務器上的計算(客戶可能會更努力)。如何遠程同步兩組?

除分而治之外還有其他想法嗎?

我不是在問通信技術或類似的問題,我只對一個好的算法感興趣。我認爲version control does是最合適的,但恐怕我不能這樣做。

+0

客戶端可以修改該設置。 – Ron 2011-03-14 05:13:54

+0

每個都有自己的設置,可以進行雙向更改。衝突是不可能的,而且非常無關緊要。 – maaartinus 2011-03-14 10:32:36

+0

就像是hub&spoke,其中服務器的變化可能是由於其他客戶的變化 – Ron 2011-03-15 16:18:52

回答

3

你可以保持服務器上的集合的生成計數器以及每一代的更改日誌。客戶端可以請求自上次同步以來的所有更改。然後,它可以集成這些更改,並且還可以(如果適用)發回自上次同步以來的任何其餘客戶端更改。

+0

我不確定這是否正確,我需要更多地考慮它。但對於所述的問題,你給出了正確的答案。 – maaartinus 2011-03-22 21:29:04

1

你可以使用插座時,首先同步所有成員裏面加答然後使用自定義方法和刪除本地組成員和發送數據+指令到另一端 你也可以使用JMX活躍MQ