Jump to content

RESTBase

From mediawiki.org
This page is a translated version of the page RESTBase and the translation is 100% complete.

RESTBase是支撐Wikimedia REST API 的緩存/存儲API代理。 它的配置基於Swagger規範,其主存儲後端使用Cassandra。 它支撐起了維基媒體REST內容API(rest_v1),該API被VisualEditor用來檢索頁面HTML以便編輯。 為了提高性能(工單T95229),每個維基上也有服務端點,例如在這個維基上

作為代理,RESTBase本身不執行任何重要的內容處理。 相反,它在需要時請求來自後端服務的內容轉換,並且通常(取決於配置)將其存儲回來供以後檢索。 對於高容量靜態端點,大多數請求將直接從存儲中滿足。

其存儲後端暴露了一個類似於Amazon DynamoDBGoogle DataStore的RESTful存儲API。 其最主要的實現使用的是Apache Cassandra。 值得注意的功能包括自動維護二級索引和一些輕量級的交易支持。 已經開發了一個SQLite後端,是軟件包中的默認後端。

RESTBase自動發出關於所有存儲和後端請求的statsd指標。 這為微服務架構中的性能和錯誤檢測提供了良好的基線水平。


使用場景

我們的第一個用例是通過減少HTML大小來加快VisualEditor的速度,並消除Varnish緩存漏掉的問題。 RESTBase將Parsoid元數據與頁面的HTML分開存儲,這使得後者的大小減少了約40%。 RESTBase只向VE提供這種HTML,這大大降低了網絡傳輸和處理的延遲。 從長遠來看,我們的目標是將HTML的大小降低到目前PHP解析器輸出的大小,使其適合普通的頁面瀏覽。 這有可能使切換到可視化編輯瞬間完成,並且不需要任何滾動。

如果解析時間對你的維基來說不是一個緊迫的問題(例如,它沒有複雜的模板或大量嵌套),那麼直接訪問Parsoid可能比引入RESTBase的這個依賴更有意義。

我們非常感興趣的另一個用例是為小編輯和極快的VisualEditor保存提供一個章節級的編輯API,甚至比wikitext還要快。

說明文件

安裝

參見

參考資料