精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Google Docs系統設計詳解(協作文檔編輯)

云計算 Kafka
由于使用微服務,若操作隊列的請求數量超過其容量,可輕松單獨擴展每個組件??墒褂枚鄠€操作隊列。此時,每個操作隊列將負責單個文檔。

1 協作文檔編輯服務的設計方式

1.1 C/S架構的集中式設施

為所有用戶提供文檔編輯服務。所有用戶都連接到一個中心服務器,該服務器負責存儲和處理文檔數據,用戶通過連接到該服務器來協作編輯文檔。提供更好的安全性和可控性,但有單點故障問題

1.2 點對點技術設計

以便在單個文檔上協作。將文檔數據分散存儲在多個用戶設備,每個用戶都可直接編輯文檔并將更改同步到其他用戶設備。提供更好靈活性和可擴展性,但可能會有數據同步不及時或數據沖突問題

大多數商業方案側重C/S架構,以實現更精細控制。因此,本文也使用C/S架構設計服務。

2 需求

2.1 功能性

① 文檔協作

多用戶能同時編輯文檔。大量用戶應能查看文檔。

② 沖突解決

系統應將一個用戶做的編輯推送給所有其他協作者。若他們正在編輯文檔同一部分,系統還應解析用戶之間的沖突。

③ 建議

  • 在文檔中完成常用單詞、短語和關鍵詞的建議
  • 修復語法錯誤的建議

④ 查看計數

文檔的編輯應能看到該文檔的查看計數。

⑤ 歷史

用戶能查看文檔的協作歷史。

2.2 非功能性

① 延遲

不同的用戶可連接起來協作同一份文檔。為來自不同區域的用戶維護低延遲訪問。

② 一致性

系統應能解析用戶并發編輯文檔時之間的沖突,從而實現文檔的一致視圖。不同區域的用戶應看到文檔的更新狀態。

對連接到同一區域和不同區域的用戶來說,保持一致性都很重要。

③ 可用性

該服務應一直可用,并展示對故障的魯棒性。

④ 可擴展性

大量用戶應能同時使用該服務。他們可查看相同的文檔,也可創建新文檔。

3 組件

3.1 數據存儲

  • 關系數據庫,用于保存用戶信息和文檔相關信息以施加特權限制
  • NOSQL,用于存儲用戶評論以獲得更快的訪問速度
  • 時間序列,用于保存文檔的編輯歷史記錄
  • Blob 存儲,用于存儲文檔中的視頻和圖像
  • 緩存,分布式緩存如 Redis 和 CDN,為最終用戶提供良好的性能。使用 Redis存儲不同數據結構,包括用戶會話、類型預期服務的功能、頻繁訪問的文檔。CDN存儲頻繁訪問的文檔和重量級對象如圖像和視頻。

3.2 處理隊列

針對每次微小字符更改使用 HTTP 調用是低效的。因此使用 WebSockets 減少開銷,并通過不同用戶實時觀察文檔的更改。

3.3 其他

會話服務器,維護用戶的會話信息。通過會話服務器管理文檔訪問權限。還要有配置、監控、發布-訂閱和日志記錄服務來處理監控任務,如在服務器失敗時監控和選舉領導者,排隊用戶通知等任務及記錄調試信息。

協作文檔編輯服務的詳細設計:

圖片圖片

4 工作流程

4.1 協作編輯和沖突解決

每個請求都會轉發到操作隊列。這是解析同一文檔的不同協作者之間沖突的地方。如果沒有沖突,則通過會話服務器將數據批量存儲在時間序列數據庫中。像視頻和圖像這樣的數據會被壓縮以優化存儲,而字符會被立即處理。歷史:借助時間序列數據庫,可以恢復文檔的不同版本??梢允褂?DIFF 操作來比較版本并標識差異以恢復同一文檔的舊版本。

4.2 異步操作

通知、電子郵件、查看次數和評論都是可以通過像 Kafka 這樣的發布-訂閱組件排隊的異步操作。API 網關生成這些請求并將它們轉發到發布-訂閱模塊。

4.3 建議

建議以類型提前服務(typeahead service)的形式出現,該服務提供通常使用的單詞和短語的自動完成功能。類型提前服務還可以從文檔中提取屬性和關鍵詞并向用戶提供建議。由于單詞數量可能很高,我們將為此目的使用 NoSQL 數據庫。此外,最常用的單詞和短語將存儲在像 Redis 這樣的緩存系統中。

4.4 導入和導出文檔

應用程序服務器執行許多重要任務,包括導入和導出文檔。應用程序服務器還將文檔從一種格式轉換為另一種格式。例如,.doc 或 .docx 文檔可以轉換為 .pdf 或反之亦然。應用程序服務器也負責為類型預期服務提取特征。

5 詳細設計

5.1 文檔編輯器

文檔由以特定順序排列的字符組成。每個字符都有一個值和一個位置索引。字符可以是字母、數字、回車()或空格。索引表示字符在有序字符列表中的位置。

文本或文檔編輯器的作用是在文檔中的字符上執行插入()、刪除()、編輯()等操作。下面是文檔的描繪以及編輯器將如何執行這些操作。

文檔編輯器如何執行各種操作

圖片圖片

5.2 并發性

不同用戶對同一文檔的協作可能導致并發問題。若多個用戶編輯文檔的同一部分,可能出現沖突。由于用戶在本地有文檔的副本,服務器上的最終文檔狀態可能與用戶在他們端看到的不同。在服務器推送更新版本后,用戶會發現意外結果。

① 在同一位置索引處添加字符

兩個用戶修改同一字符可能導致并發問題:

圖片圖片

② 刪除同一字符

刪除同一字符,可能導致意外更改:

圖片圖片

第二個例子表明,不同用戶應用相同的操作不會是冪等的。因此,在多個協作者同時編輯文檔同一部分時,需沖突解決。

協作編輯中并發問題的解決方案應遵循規則:

  • 交換律:應用操作的順序不應影響最終結果
  • 冪等性:重復的相似操作只應用一次

6 沖突解決技術

6.1 操作轉換(OT)

廣泛用于協作編輯中的沖突解決的技術,一種【無鎖】、【非阻塞】的沖突解決方法。若協作者之間的操作沖突,OT會解析沖突并將正確的匯聚狀態推給最終用戶。因此,OT為用戶提供一致性。

OT 使用位置索引方法執行操作來解析上面討論的那些沖突。通過保持交換律、冪等性來解決上述問題。

OT示例:

圖片圖片

基于 OT 的協作編輯器在滿足以下兩個屬性時一致:

  • 因果關系保持:如果操作 a 發生在操作 b 前,那先執行操作 a,然后執行操作 b
  • 收斂:不同客戶端上的所有文檔副本最終相同

上述屬性是 CC 一致性模型的一部分,CC 一致性模型是協作編輯中一致性維護的模型。

OT的缺點

對字符的每個操作都可能需要更改位置索引。這意味著操作之間存在順序依賴關系。它的開發和實現具有挑戰性。

OT是一組復雜算法,其正確實現在實際應用中已被證明有挑戰性。Google Wave 團隊花兩年時間實現OT。

6.2 無沖突復制數據類型 (CRDT)

是為了改進 OT。CRDT 具有:

  • 復雜的數據結構
  • 但簡化的算法

CRDT 通過為每個字符分配兩個關鍵屬性來滿足交換律和冪等性:

  • 為每個字符賦予全局唯一標識
  • 全局訂購每個字符

每個操作現在都有一個更新后的數據結構:CRDT 簡化的數據結構

圖片圖片

SiteID 唯一標識請求操作的用戶站點,帶有一個值和一個 PositionalIndex。PositionalIndex值可以是分數:

  • 某些操作不會改變其他字符的 PositionalIndex
  • 避免不同用戶操作之間的順序依賴性

示例描繪來自站點 ID 123e4567-e89b-12d3 的用戶在 PositionalIndex 為 1.5 的位置插入一個值為 A 的字符。盡管添加了新字符,但使用小數索引保留了現有字符的位置索引。因此,避免了操作之間的順序依賴性。如下所示,在 O 和 T 之間插入()并沒有影響 T 的位置。

防止操作之間的順序依賴性:

圖片圖片

CRDT 確保用戶之間的強一致性。即使一些用戶處于離線狀態,當他們重新聯機時,最終用戶處的本地副本也將匯聚。

盡管眾所周知的在線編輯平臺如 Google 文檔、Etherpad 和 Firepad 使用 OT,但 CRDT 使協作文檔編輯中的并發和一致性變得容易。事實上,使用 CRDT,可以實現無服務器點對點協作文檔編輯服務。

6.3 注意

OT 和 CRDT 是協作編輯中沖突解決的良好解決方案,但我們使用 WebSockets 可高亮協作者的光標。其他用戶也能預期該協作者的下一個操作的位置,并自然和自覺地避免沖突。

7 總結

7.1 一致性

操作轉換(OT)和沖突不定決議數據類型(CRDT)在文檔中實現沖突解決的強一致性。

時間序列數據庫能保留事件的順序。一旦 OT 或 CRDT 解析了任何沖突,最終結果就保存在數據庫。這有助我們在單個操作方面實現一致性。

在IDC內的不同服務器之間保持文檔狀態的一致性。要在同一IDC內同時復制更新后的文檔狀態,可使用 Gossip 協議這樣的點對點協議。這不僅提高一致性,還會提高可用性。

7.2 可用性

我們的設計通過使用副本以及使用監控服務監控主副本服務器來確??捎眯?。操作隊列和數據存儲等關鍵組件在內部管理自己的復制。

由于使用 WebSockets,WebSocket 服務器可將用戶連接到會話維護服務器,這些服務器將確定用戶是否正在主動查看或協作文檔。

因此,保留多個 WebSocket 服務器將增加設計的可用性。最后,采用緩存服務和 CDN 改進可用性。

7.2 可擴展性

由于使用微服務,若操作隊列的請求數量超過其容量,可輕松單獨擴展每個組件??墒褂枚鄠€操作隊列。此時,每個操作隊列將負責單個文檔??蓪⒉煌脩粽埱蟮呐c單個文檔相關的操作轉發到特定隊列。生成的隊列數量將等于活動文檔的數量。因此可實現水平擴展性。

參考:

  • 編程嚴選網
責任編輯:武曉燕 來源: JavaEdge
相關推薦

2011-11-30 16:08:14

YC新銳Stypi

2020-12-31 09:42:30

漏洞Google Docs

2019-03-21 09:12:06

CryptPad開源編輯器

2022-01-16 19:26:14

Windows 11操作系統微軟

2011-09-08 09:24:17

Google Docs服務中斷

2011-09-08 11:17:33

Google中斷故障文檔服務

2025-07-04 02:15:00

JavaScript文本編輯器

2013-01-17 11:02:39

IBM智能云文檔Office 365

2010-05-13 22:18:45

Google Docs

2013-06-09 14:12:42

監控

2009-11-12 09:30:40

Google DocsChrome藏夾

2009-09-27 09:54:59

Google Site

2009-07-22 16:38:53

2015-12-30 10:29:40

Git協作流程詳解

2021-08-30 14:28:56

在線寫作協作文檔辦公軟件

2010-07-12 13:20:18

UML協作圖

2024-06-27 12:26:32

2021-09-15 14:53:35

在線文檔多人協作

2010-05-14 10:02:14

2012-05-16 18:09:31

Google
點贊
收藏

51CTO技術棧公眾號

久久一区二区视频| 亚洲精品a级片| 欧美视频裸体精品| 欧美精品一区二区三区在线四季| 亚洲天堂男人av| 精品成人影院| 91精品婷婷国产综合久久性色| 精品一区二区成人免费视频| 国产成人三级一区二区在线观看一| 欧美成人综合| 精品国产一区二区国模嫣然| 奇米精品一区二区三区| 都市激情在线视频| 国产精品综合二区| 国外成人在线直播| 久久久无码人妻精品一区| 欧美aaa视频| 亚洲欧美另类小说| 亚洲伊人久久大香线蕉av| 国产在线视频你懂的| 免费精品国产的网站免费观看| 在线亚洲精品福利网址导航| 中文网丁香综合网| 天堂在线视频免费| 久久精品综合| 欧美猛交免费看| 国产男女猛烈无遮挡a片漫画| 视频精品导航| 亚洲国产日韩a在线播放| 欧洲亚洲一区二区| 成人免费视频国产免费麻豆| 韩国亚洲精品| 在线看片第一页欧美| 亚洲三级在线视频| 成人性生活视频| 亚洲精品伦理在线| 欧美尤物一区| 六月婷婷中文字幕| 蜜桃视频免费观看一区| 国内揄拍国内精品| 男人晚上看的视频| 免费成人网www| 欧美精品一区二区三区很污很色的| 国产精品天天av精麻传媒| 色女人在线视频| 中文字幕欧美激情| 久久久婷婷一区二区三区不卡| 一区二区三区免费观看视频| 翔田千里一区二区| 欧美国产在线电影| 亚洲国产精品一区二区久久hs| 西野翔中文久久精品国产| 51精品视频一区二区三区| 日韩视频在线免费看| 欧美videossex另类| 国产精品理伦片| 欧美日韩喷水| 亚洲欧洲精品视频| 成人性生交大合| 亚洲一区二区少妇| 国产一区二区在线视频观看| 日韩成人av影视| 国产999在线观看| 日本一区二区三区免费视频| 欧美在线看片| 九九热这里只有精品6| 日韩在线一卡二卡| 欧美肥老太太性生活| 日韩精品福利网站| 欧亚乱熟女一区二区在线| 亚洲精品国产九九九| 欧美二区在线观看| 亚洲小视频网站| 久久久久久久性潮| 在线电影欧美成精品| 欧美午夜aaaaaa免费视频| 欧美大片免费| 91国偷自产一区二区开放时间| 国产高清精品在线观看| 擼擼色在线看观看免费| 精品国产91久久久| 日本久久久精品视频| 综合毛片免费视频| 色噜噜狠狠成人中文综合| 国产一区二区视频免费在线观看| 亚洲成人不卡| 欧美性猛交xxxx| 麻豆av免费在线| 欧美www.| 欧美日本韩国一区二区三区视频 | 91肉色超薄丝袜脚交一区二区| 日韩在线卡一卡二| 成人在线中文字幕| 精品国精品国产自在久不卡| 成人一二三区视频| 久精品国产欧美| 国产午夜在线观看| 国产精品久久久久三级| www.国产二区| 性孕妇free特大另类| 欧洲视频一区二区| 无人在线观看的免费高清视频 | 亚洲人成色77777| 日韩一级二级| 欧美一区二区不卡视频| 久久久久久国产精品日本| 老司机凹凸av亚洲导航| 亚洲欧美在线一区| 国精产品久拍自产在线网站| 韩日精品视频| 国产精品99蜜臀久久不卡二区| 男人天堂视频在线| 国产一区欧美日韩| 精品婷婷色一区二区三区蜜桃| 久久久pmvav| 亚洲欧美乱综合| 黄在线观看网站| 99久热在线精品视频观看| 欧美大片免费久久精品三p| 污污污www精品国产网站| 久久精品国产68国产精品亚洲| 九九久久久久久久久激情| 中文字幕在线日本| 国产风韵犹存在线视精品| 欧美一区二区三区在线免费观看 | 日韩精品久久久久久久软件91| 亚洲精品国偷自产在线99热| 国产精品免费在线视频| 99国产精品| 91久热免费在线视频| 日本中文字幕一区二区有码在线| 国产精品国产三级国产专播品爱网 | 中文字幕亚洲欧美在线| 日韩精品国产一区二区| 久久机这里只有精品| 精品无码久久久久国产| 在线观看男女av免费网址| 欧美中文字幕一二三区视频| 欧美福利视频在线| 精品国产午夜福利在线观看| 精品在线91| 色综合五月天导航| 亚洲图片视频小说| 91丨九色丨国产丨porny| 久久久久久久久影视| 日本一区免费网站| 日韩精品视频免费在线观看| 久草视频免费在线| 国产在线麻豆精品观看| 神马欧美一区二区| 电影网一区二区| 亚洲精品999| 日本一级二级视频| 麻豆91精品91久久久的内涵| 青青草国产精品| 三上悠亚亚洲一区| 亚洲精品在线观看www| 欧美成人aaaaⅴ片在线看| 国产一区二三区好的| 亚洲欧美日韩在线综合| 神马电影网我不卡| 精品亚洲精品福利线在观看| 国产亚洲欧美久久久久| 国产精一区二区三区| 中文精品视频一区二区在线观看| 深夜日韩欧美| 久久精品91久久香蕉加勒比| 一本一道精品欧美中文字幕| 国产精品系列在线| 波多野结衣xxxx| 区一区二视频| 在线视频亚洲一区| 变态另类丨国产精品| 欧美激情视频一区二区三区免费| 91精品久久久久久久久青青 | 亚洲一区久久久| free性欧美hd另类精品| 欧美日韩在线播| 成人免费视频入口| 国产最新精品免费| 成人午夜免费剧场| 国产精品极品在线观看| 欧美国产精品人人做人人爱| 亚洲国产精彩视频| 天天av天天翘天天综合网| 免费看黄色aaaaaa 片| 亚洲人体偷拍| 看高清中日韩色视频| 欧美日韩激情电影| 久久精品中文字幕| 精品国产av鲁一鲁一区| 亚洲香蕉伊在人在线观| 波多野结衣办公室33分钟| 日本怡春院一区二区| 亚洲欧洲一二三| 精品国产麻豆| 97精品在线视频| 国产毛片在线| 91精品国产综合久久精品性色| 欧美精品色哟哟| 91网站在线观看视频| 日本免费观看网站| 香蕉国产精品| 国产一区再线| 国产成人精品一区二区三区视频| 欧美成人免费在线视频| 无码国产精品一区二区色情男同| 色嗨嗨av一区二区三区| 国产又粗又硬又长又爽| 99久久免费国产| 中文字幕成人在线视频| 亚洲国产一成人久久精品| 国内一区二区三区在线视频| 国产成人精品一区二区三区免费| 久精品免费视频| 五月激情婷婷网| 制服.丝袜.亚洲.中文.综合| 国产精品777777| 亚洲欧美怡红院| 国产在线观看无码免费视频| 国产真实乱子伦精品视频| 狠狠爱免费视频| 欧美激情五月| 欧美在线激情| 露出调教综合另类| 亚洲综合一区二区不卡| 欧美最新精品| 欧美精品aaa| 精品国产丝袜高跟鞋| 国产网站欧美日韩免费精品在线观看| 亚洲最大成人av| 色综合天天天天做夜夜夜夜做| 免费毛片在线播放免费| 国产精品福利在线播放| 精品中文字幕在线播放| 国产真实精品久久二三区| 婷婷六月天在线| 老鸭窝91久久精品色噜噜导演| 色哺乳xxxxhd奶水米仓惠香| 成人羞羞在线观看网站| 蜜桃av色综合| 秋霞在线一区| 波多野结衣久草一区| 亚洲ww精品| 国产成人精品在线播放| 美女网站在线看| 国模视频一区二区三区| 中文字幕中文字幕在线十八区| 在线性视频日韩欧美| 国产人成在线视频| 精品亚洲一区二区| 天天操天天爱天天干| 日韩欧美视频一区| 国产伦理一区二区| 91精品欧美综合在线观看最新| 日韩久久久久久久久久| 91福利资源站| 国产情侣小视频| 99re8在线精品视频免费播放| 久久xxxx精品视频| 精品久久久999| 免费高清完整在线观看| 日韩中文字幕网站| caoporm免费视频在线| 韩国亚洲精品| 国产成人精品在线观看| 电影亚洲精品噜噜在线观看| 国产精品久久久久久久av大片 | 国产91|九色| 成人精品电影在线| 成人国产精品色哟哟| 天堂va欧美ⅴa亚洲va一国产| 国产伦精品一区二区三区四区免费| 麻豆一区二区麻豆免费观看| 日韩啊v在线| 欧美一区二区三区另类| 熟女少妇在线视频播放| 日韩高清不卡一区| 亚洲av无码久久精品色欲| av一区二区三区黑人| 国产在线综合视频| 亚洲精品一二三四区| www成人在线| 欧美日韩国产一级片| 懂色av蜜臀av粉嫩av分享吧| 精品亚洲永久免费精品| 黄视频在线观看网站| 欧美亚洲另类视频| **精品中文字幕一区二区三区| 国产精品久久一区二区三区| 红桃视频在线观看一区二区| 男女激烈动态图| 噜噜噜在线观看免费视频日韩| 手机免费av片| 91论坛在线播放| 久久中文免费视频| 色爱区综合激月婷婷| 国产激情久久久久久熟女老人av| 亚洲欧美日韩第一区| 污污视频在线看| 国产精品免费视频xxxx| 999在线精品| 宅男噜噜99国产精品观看免费| 亚洲黄色一区| 肉色超薄丝袜脚交| 国产欧美一区二区精品性| 国产精品成人久久| 欧美福利一区二区| 国产福利小视频在线| 久久免费高清视频| 国产精品一区二区三区www| 日韩国产欧美一区| 136国产福利精品导航网址| 中文字幕视频三区| 久久精品夜色噜噜亚洲aⅴ| 久久这里只有精品免费| 777亚洲妇女| 搞黄视频免费在线观看| 97超级碰在线看视频免费在线看| 国产在线不卡一区二区三区| 亚洲成人一区二区三区| 鲁大师成人一区二区三区| 亚洲成a人无码| 亚洲免费毛片网站| 91成人国产综合久久精品| 亚洲午夜精品久久久久久久久久久久| 波多野结衣视频一区二区| 91超碰在线免费观看| 亚洲欧美在线专区| 亚洲图色中文字幕| 中文字幕第一区二区| 免费又黄又爽又猛大片午夜| 日韩电影网在线| 草草视频在线观看| 国产欧美综合精品一区二区| 欧美日韩影院| 佐佐木明希电影| 曰韩精品一区二区| 午夜精品一二三区| 欧美精品在线第一页| 日韩高清一区| www国产免费| 国产成人av福利| 久久国产免费观看| 日韩欧美国产wwwww| 午夜dj在线观看高清视频完整版| 91九色极品视频| 国产综合亚洲精品一区二| 亚洲区 欧美区| 亚洲一区二区黄色| 香蕉视频国产在线| 日韩美女视频免费看| 精品国产一区一区二区三亚瑟| 不卡av免费在线| 国产精品热久久久久夜色精品三区 | 亚洲av无码一区东京热久久| 亚洲电影一区二区三区| 偷拍25位美女撒尿视频在线观看| 欧美综合激情网| 精品久久一区| 超碰人人草人人| 亚洲综合一区在线| 日韩午夜影院| 国产精品露脸自拍| 一区二区蜜桃| 亚洲成年人在线观看| 精品久久久中文| 国产综合在线观看| 成人激情视频网| 精品1区2区3区4区| 成人乱码一区二区三区av| 日本久久精品电影| 日本不卡一区二区三区视频| 韩日精品在线| 精品国产av无码| 亚洲区国产区| 污网站在线免费| 午夜精品一区二区三区电影天堂| 五月婷婷开心中文字幕| 国产精品美女无圣光视频| 欧美日本三区| 色婷婷在线影院| 欧美精品aⅴ在线视频| 蜜臀av在线| 日本精品免费| 国产成人在线电影| 日本天堂网在线| 久久亚洲精品一区| 欧美黑人做爰爽爽爽| 邪恶网站在线观看| 亚洲国产成人av| 成年人视频网站在线| 国产98在线|日韩| 日韩在线观看一区二区| 久久精品视频9| 色小说视频一区| 日韩美女毛片| 熟妇女人妻丰满少妇中文字幕| 色就色 综合激情| brazzers在线观看|