c# - 分布式列表中的冲突解决

标签 c# .net windows distributed-caching

我想维护一个分布在 N 个负载平衡服务器之间的对象列表:每当客户端更改一个服务器上的列表时,我希望将这些更改迁移到其他服务器。所以,我想这是主-主复制的情况。 处理这个问题最简单的方法是什么?一个简化的事实是,对列表中对象的每个更改都附加了一个相关的递增版本号。因此,如果一个项目在两个不同的服务器上发生更改,并且这两个增量到达第三个服务器,则可以解决冲突。

编辑:澄清:我非常熟悉 Memcached 和 Redis 等分布式键值存储。这不是这里的问题;我感兴趣的是一种解决共享列表中冲突的机制:如果服务器 A 更改了列表中的项目,而服务器 B 删除了该项目,例如,如何以编程方式解决冲突。

最佳答案

我建议使用 memcached。它是一个分布式服务器缓存系统,似乎非常适合您的需求。查看此链接:

Which .NET Memcached client do you use, EnyimMemcached vs. BeITMemcached?

如果传递整个列表不适合你(我不知道 memcached 是否足够聪明来区分你的列表)那么我建议看一下旧的 DataSet 对象,因为它的差异克应该很适合如果您的数据集很大,则只传递增量。

关于c# - 分布式列表中的冲突解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632409/

相关文章:

c - SHELLEXECUTEINFO UNICODE 支持吗?

windows - 创建批处理脚本以在没有其他压缩工具的情况下解压缩文件

c# - 如何在 WPF WebBrowser 控件中允许不受信任的 SSL

c# - HttpClient爬取导致内存泄漏

c# - 如何在页面加载时运行 JavaScript 函数

.net - 使用 .Net 3.5 程序集 SQL 2005 CLR?

c# - Azure WebJobs 以及 crone 计划和作业触发器的正确​​语法

.net - 有没有一种获取开放泛型方法的 MethodInfo 的好方法?

c# - 如何使用其他字符串从确定位置更改一个字符串?

c++ - 在 C++/windows 中检测内存泄漏