6.文档协同系统
目的
设计多人同时在线编辑文档,如腾讯文档
场景
需求
协同编辑
编辑的主要功能
- new
- edit
- 保存
加入协同
- 协同
- 可以展示谁在编辑
- 内容锁定
:::color2
使用websocket可以进行主动和被动更新,支持双向通信
:::
url设计
使用短连接,而且连接不能包含文件路径信息
文件存放
参考gfs的设计方式,metadata存放到db,内容信息在文件系统
修改方式是以行来作为修改的,使用双向链表进行构建数据结构,然后来执行
具体的修改逻辑,客户端告诉服务端是在哪一个的方向进行操作,然后处理之后,同步传给其他客户端
编辑操作
为了避免多次进行调用,可以存放到redis,然后定时任务,这样可以一次性的写一批数据
显示多个人的图像
多个人的信息是实时变化的
正在编辑的,写入redis
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.