| commit e8bdd1a0a5a02686b2d7dca14f3e676eb4d9bb4d |
| Author: liyao <maxwell92@126.com> |
| Date: Tue Jun 6 23:04:39 2023 +0800 |
| |
| docs: update features (#397) |
| |
| * docs: update docs |
| |
| Signed-off-by: mlycore <maxwell92@126.com> |
| |
| * docs: update docs |
| |
| Signed-off-by: mlycore <maxwell92@126.com> |
| |
| --------- |
| |
| Signed-off-by: mlycore <maxwell92@126.com> |
| |
| diff --git a/docs/content/features/DBRE/_index.cn.md b/docs/content/features/DBRE/_index.cn.md |
| index 25e061d..67972f7 100644 |
| --- a/docs/content/features/DBRE/_index.cn.md |
| +++ b/docs/content/features/DBRE/_index.cn.md |
| @@ -1,6 +1,26 @@ |
| +++ |
| pre = "<b>3.2 </b>" |
| -title = "ShardingSphere Chaos 介绍" |
| +title = "数据库可靠性工程" |
| weight = 2 |
| chapter = true |
| +++ |
| + |
| +## 概述 |
| + |
| +数据库可靠性工程(Database Reliability Engineering,DBRE)类似站点可靠性工程(Site Reliability Engineering,SRE),关注通过各种技术手段提升数据库相关服务的稳定性。对于部署在 Kubernetes 之上的 ShardingSphere 来说,需要借助 Operator 进一步实现 DBRE。 |
| + |
| +## 高可用部署 |
| + |
| +ShardingSphere Proxy 本身是无状态的,作为计算节点用来处理客户端发来的 SQL 并完成相关数据计算。因此,Operator 通过 ComputeNode 对 ShardingSphere Proxy 进行抽象和描述。目前,ShardingSphere Proxy 因其无状态性,可以使用 Deployment 部署模式进行。Deployment 是 Kubernetes 提供的基础部署方式,其所管理的 Pod 之间并无差异。ShardingSphere 通过 Deployment 进行部署,可以获得健康检查、就绪检查等基础自愈能力,以及滚动升级和历史版本回滚等特性。 |
| + |
| +ComputeNode 的定义中包含了部署 ShardingSphere Proxy 所需要的各类属性,如副本数、镜像仓库信息和版本信息、数据库驱动信息、健康检查和就绪检查探针等,还包含了端口映射规则、服务启动需要的 Server.yaml、logback.xml ,Agent 相关的配置等信息。这些信息在 Operator 的调谐过程中会分别渲染为 Kubernetes Deployment、Service 和 ConfigMap,并自动完成相关绑定和挂载动作。 |
| + |
| +借助于 Deployment 的能力,除了可以轻松实现多副本部署外,还可以实现亲和性、污点容忍等高级调度特征,这些都为 ShardingSphere Proxy 提供了基础高可用能力。 |
| + |
| +## 自动弹性扩容 |
| + |
| +Kubernetes 社区提供了水平弹性扩容控制器(Horizontal Pod Autoscaler,HPA),可以实现基于 CPU 和内存的自动水平弹性扩容,也可以配合 Prometheus Adapter 实现基于自定义指标的扩容能力。 |
| + |
| +## 可观测性 |
| + |
| +ShardingSphere Proxy 可以通过 ShardingSphere Agent 采集并暴露相关运行指标,ShardingSphere on Cloud 提供了相应的 Grafana 模板。Agent 相关信息可以参考[链接](https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/observability/)。 |
| diff --git a/docs/content/features/EcosystemExtensions/_index.cn.md b/docs/content/features/EcosystemExtensions/_index.cn.md |
| index 59d7bc4..824197b 100644 |
| --- a/docs/content/features/EcosystemExtensions/_index.cn.md |
| +++ b/docs/content/features/EcosystemExtensions/_index.cn.md |
| @@ -5,3 +5,12 @@ weight = 4 |
| chapter = true |
| +++ |
| |
| +## WebAssembly 扩展 |
| + |
| +WebAssembly 起初是为了解决 JavaScript 在浏览器上的一些性能瓶颈,目前已经不局限于浏览器, WASI 规范使得其可以运行在更多的场景中,例如可信计算、边缘计算等。目前主流的语言基本都支持编译到 WASM 。 |
| + |
| +ShardingSphere 的插件(SPI)只支持 java 生态,把 WASM 引入到 ShardingSphere 中可以进一步开放生态,吸引更多的社区开发者。例如,社区针对自定义分片场景,创建了简单的 demo, 增加了 WasmShardingAlgorithm.java 模块,用于加载和运行用户提供的 wasm 自定义分片逻辑。 |
| + |
| +此外由于 ShardingSphere 定义分片规则只支持 Java 生态中的 Groovy 语法,通过 WASM 用户可以使用自己熟悉的语言生态来定义分片逻辑。WASM-sharding-js 则演示了如何通过 JavaScript 定义 CRC32MOD 分片算法。 |
| + |
| + |