我有一个客户要求,我有一个集中式系统,他的所有附属分支机构都可以在上面工作。
目前,这是一个在 IIS 7 下运行的 ASP.net Web 表单应用程序,在 win 2008 RC 2 上使用 SQL 后端。
客户现在要求每个分支机构都有一个本地服务器,这样在互联网连接中断的情况下,分支机构的生产力不会受到影响。
他的另一个要求是所有内容都可以通过中央集线器进行更新,并使用某种机制将更新过滤到各个站点。
我在这里有什么选择?
我认为以下是可能的选择:
- 由负载平衡器控制的多个冗余 Internet 连接
- 数据库的 SQL 复制(哪个更好,快照、合并或事务)
- 滚动我自己的 IIS 同步服务,定期检查是否有新版本的网络应用程序并下载它(我希望有比这更好的选择)
- 更好的东西我还不知道(我希望这是我需要的)
我的一个客户担心的是,分支机构通常位于非常偏远的地区,从技术人员到互联网的一切都很难找到并且非常稀缺。
欢迎任何想法,建议,提示等。
谢谢大家
适用于 Web 内容和 IIS 配置的两个工具是 Windows DFS-R 和 IIS7 共享配置。
我建议将 DFS-R 与中心辐射型配置一起使用,以便一个位置推送到其余所有位置。使用指向共享文件夹的 IIS7 共享配置,例如 c:\inetpub\IISSharedConfig。DFS-R 可以使该文件夹保持同步。如果人们写信到每个位置,那么您将需要一个完整的网格配置。
对于 SQL,如果不了解应用程序的详细信息,这并不是一个简单的答案。如果您需要在每个位置读取实时最新数据,那么设置为每分钟运行一次的快照复制可能是最好的。不过要掌握它需要一些了解,因为需要处理您的标识列,并且您需要在每个位置预先分配足够大的标识范围来处理批量插入。您可以考虑使用 NeverFail 或 Xkoto 等第三方解决方案。
斯科特几乎回答了我想说的一切——除了我想说考虑使用 GUID 来标识身份——比尝试播种/预先分配范围等更容易。
DFS-R 将使您的 Web 数据轻松同步,sql 将取决于您的应用程序和数据库结构,哪种方式最有效。