当前位置:网站首页>多主复制的适用场景(2)-需离线操作的客户端和协作编辑
多主复制的适用场景(2)-需离线操作的客户端和协作编辑
2022-07-31 15:27:00 【华为云】
3.1.2 需离线操作的客户端
应用在断网后仍需继续工作。
如手机、PC和其他设备上的日历应用。无论设备当前是否连网,都需随时查看:
- 当前会议日程(读请求)
- 添加新会议(写请求)
离线状态下进行的任何更改,会在设备下次上线时,与服务器和其他设备同步。
此时,每个设备都有一个充当M的本地DB(接受写请求),并在所有设备之间采用异步方式同步这些多M上的副本,同步滞后可能是几h或数天,具体时间取决于设备何时再联网。
架构上,这种设置类似IDC之间的多主复制,只不过每个设备都是个“IDC”,而它们之间的网络连接极不可靠。从日历同步功能的这些破烂实现也能看出,多主可以得到结果,但中间依旧很多未知数。
有一些工具就是为了使多主配置更容易,如CouchDB。
3.1.3 协作编辑
实时协作编辑应用程序允许多人同时编辑文档。如Google Docs。通常不会将协作式编辑完全等价于数据库复制问题,但与前面提到的离线编辑案例类似。
当一个用户编辑文档时,所做更改将立即应用到本地副本(Web浏览器或客户端应用程序中的文档状态),并异步复制到服务器和编辑同一文档的任何其他用户。
若要保证不发生编辑冲突,则应用程序必须先锁定文档,然后才能编辑。若另一用户想编辑同一文档,必须等到第一个用户提交修改并释放锁。这种协作模式类似主从复制模型下在主节点执行事务。
为加速协作效率,期望将可编辑粒度设置很小,如一个按键甚至全程无锁。但同时也带来多主复制都有的挑战:解决冲突。
边栏推荐
猜你喜欢
随机推荐
做事软件开发-法的重要性所在以及合理结论的认识
Matlab矩阵基本操作(定义,运算)
Implement anti-shake and throttling functions
Kubernetes common commands
数据表插入数据insert into
长得很怪的箱图
TRACE32 - C source code association
button控件的使用
「秋招系列」MySQL面试核心25问(附答案)
工程流体力学复习
QGIS 加载WMS数据,重新投影
What is the difference between BI software in the domestic market?
type of timer
Visualize GraphQL schemas with GraphiQL
AVH Deployment Practice (1) | Deploying the Flying Paddle Model on Arm Virtual Hardware
01 邂逅typescript,环境搭建
Gorm—Go language database framework
Efficient use of RecyclerView Section 1
How useful is four-quadrant time management?
RecyclerView高效使用第三节









