关于实时协同编辑的架构思考

本文探讨了实时协同编辑的架构设计,包括其定义、面临的实时性、一致性和容错性挑战。重点讨论了如何在牺牲一致性的情况下,通过diff-patch和Operational Transformation策略实现最终一致性。此外,还提出了结合不同技术的交互设计策略,以优化用户体验。
摘要由CSDN通过智能技术生成

今天和大家聊一聊协同编辑的架构设计。


什么是协同编辑

协同编辑是指多人同时对同一份文档进行编辑。

例如我们熟悉的wiki,百度百科,以及办公产品腾讯文档,乃至我们的代码管理工具git,都可以算作是协同编辑产品。

实时协同编辑

随着大家在家办公,异地办公的情况普及,实时协同编辑工具也变得更加引人注目。

实施协同编辑会面临几个问题:

  • 实时性——输入的数据可以及时被相关协作者看到
  • 一致性——各端看到和编辑的文档需要保持一致
  • 容错性——允许存在一定的网络波动,和数据丢失

但是这三个问题会形成一个不可能三角

即任意方案只能满足其中2个点,牺牲第3个点。

在这里插入图片描述

有的同学可能对这个三角形不是很理解。

我们可以这样类别,将协同编辑的文档类比为分布式数据库,编辑者类别为数据库的读写服务,那么我们的这个三角形就可以转换为CAP不可能三角

关于CAP定理,可以参见我的博客一文看懂CAP定理_黄腾霄的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值