1

我正在設計一個由中央SQL Azure數據庫和許多(可能+ 2000)遠程客戶端[kiosks]組成的新應用程序。我需要將一個簡單的(10個表)本地SQL CE數據庫與Azure DB同步,並設想同步至少需要每天進行一次 - 可能沒有大量事務需要應用於每個同步中的信息亭,即一對插入,幾個更新(通常不需要應用更改);目前我也只能設想它會是master>客戶端更新不是雙向的。我曾考慮客戶端 - 客戶端同步,以幫助服務器上的可伸縮性,但不幸的是,我的客戶表示,這可能是不可能的,因爲信息亭只有3G連接並且不參與局域網。適用於離線應用的同步框架體系

爲了實現這一目標,我正在尋找使用MS Sync Framework的方法,但是我擔心可能的爭用以及許多客戶端可能同時連接到中央Azure數據庫的性能。我可以看到兩種可能的解決方案:

1)有一個服務器端調度工作隊列,它在客戶端調用WCF服務,從客戶端啓動同步。這對我來說感覺有點過分了,並增加了解決方案的複雜程度。

2)配置每個客戶端或批次的客戶端在不同的時間進行同步 - 這是可行的,但可能會成爲管理員。負擔。

......或者,我是否認爲問題不存在,交易規模是否可控。

感謝

回答

3

我張貼在同步Fx的論壇,你的問題的答覆,但生病後在這裏反正:

而不是每個客戶端直接連接到Azure的DB,我建議建立一個天青基於同步的服務。同步Fx團隊提供了以下示例:http://blogs.msdn.com/b/sync/archive/2010/10/07/windows-azure-sync-service-demo-available-for-download.aspx

現在就您的Atom/OData /非MS平臺客戶端而言,Sync Fx v4 CTP已經在OData(但不是OData本身的一部分)上構建了功能,並且具有樣本適用於Silverlight,Windows Phone和其他客戶端。不幸的是,該版本已被推遲,但CTP位將作爲代碼示例發佈(而不是產品發佈)。

在CTP另一種選擇是OData的引用緩存,檢查出來的:http://blogs.msdn.com/b/astoriateam/archive/2011/04/13/reference-data-caching-walkthrough.aspx

使用樣本Azure的同步服務,您可以輕鬆地定製其安裝到一個SQL CE - Azure的同步服務 - SQL Azure的同步。您只需調整同步和持續時間的平均大小,以便分散2000個客戶端的同步。

您可能探索的另一個選項是點對點同步。

如果您有自助服務終端定位並相互連接,則可以讓一個自助服務終端與Azure同步,並讓其他自助服務終端同步到該自助服務終端。

+0

非常感謝您的回覆。將此標記爲答案,並將任何感興趣的人員引薦至:http://social.msdn.microsoft.com/Forums/zh-CN/syncdevdiscussions/thread/6526bbd7-2479-4a7d-b7f5-fd6326d92933?prof=required – Sidebp 2011-04-30 20:41:05