RESTBase

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

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还要快。

文档

安装

参见

参考资料