san*_*fin 4 rest distributed synchronization
我们在Restlet框架上构建了一个基于REST的应用程序,它支持CRUD操作.它使用本地文件来存储数据.
现在要求是在多个VM上部署此应用程序,并且一个VM中的任何更新操作都需要传播在其他VM上运行的其他应用程序实例.
我们解决这个问题的想法是在给定VM中发生更新操作时发送多个POST消息(对所有其他应用程序).这里假设每个应用程序都有一个所有其他应用程序的列表/ URL.
有没有更好的方法来解决这个问题?
一致性是一个深层次的主题,也是一个很难做到的事情.当同一数据发生两个几乎同时发生的变化时会出现问题:冲突的更新可以在一个服务器上以一个顺序到达,在另一个服务器上以另一个顺序到达.这是一个问题,因为两个服务器不再同意数据是什么,并且不清楚谁是"正确的".
短篇小说:获取您最喜欢的RDBMS(例如,mysql很受欢迎)并让您的应用服务器连接到所谓的三层模型.确保在事务中执行复杂的更新,这将提供可接受的一致性模型.
长篇大论:三层模型适用于中小型网站/服务.您最终会发现单个数据库成为瓶颈.对于读取流量远大于写入流量的服务,常见的优化是创建单主机,多从机数据库复制安排,其中所有写入都发送到单主机(与非分布式事务一致所需),但更常见的读取可以转到任何读取从属.
对于具有均匀混合的读/写流量的服务,可以通过删除正式SQL提供的一些便利(以及附带的限制)来改善服务,而是使用最近出现的各种"nosql"数据存储之一.他们对各种问题的相对优点和适应性本身就是一个深刻的话题.
目前我可以看到 7 个主要选项。您应该了解更多详细信息并决定设施/权衡是否适合您的目的
| 归档时间: |
|
| 查看次数: |
3060 次 |
| 最近记录: |