元数据持久化仓库

背景信息

Apache ShardingSphere 为不同的运行模式提供了不同的元数据持久化方式,用户在配置运行模式的同时可以选择合适的方式来存储元数据。

参数解释

数据库持久化

类型:JDBC

适用模式:Standalone

可配置属性:

名称数据类型说明默认值
providerString元数据存储类型,可选值为 H2,MySQLH2
jdbc_urlStringJDBC URLjdbc:h2:mem:config;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
usernameString账号sa
passwordString密码

ZooKeeper 持久化

类型:ZooKeeper

适用模式:Cluster

可配置属性:

名称数据类型说明默认值
retryIntervalMillisecondsint重试间隔毫秒数500
maxRetriesint客户端连接最大重试次数3
timeToLiveSecondsint临时数据失效的秒数60
operationTimeoutMillisecondsint客户端操作超时的毫秒数500
digestString登录认证密码

Etcd 持久化

类型:Etcd

适用模式:Cluster

可配置属性:

名称数据类型说明默认值
timeToLiveSecondslong临时数据失效的秒数30
connectionTimeoutlong连接超时秒数30

Consul 持久化

com.ecwid.consul:consul-api:1.4.5 的 Maven 模块的限制,使用者无法通过 gRPC 端口来连接到 Consul Agent。

Consul 实现的 serverLists 属性受设计使然,仅可通过 HTTP 端点连接到单个 Consul Agent。 serverLists 使用了宽松的 URL 匹配原则。

  1. serverLists 为空时,将解析到 http://127.0.0.1:8500 的 Consul Agent 实例。
  2. serverListshostName 时,将解析到 http://hostName:8500 的 Consul Agent 实例。
  3. serverListshostName:port 时,将解析到 http://hostName:port 的 Consul Agent 实例。
  4. serverListshttp://hostName:port 时,将解析到 http://hostName:port 的 Consul Agent 实例。
  5. serverListshttps://hostName:port 时,将解析到 https://hostName:port 的 Consul Agent 实例。

类型:Consul

适用模式:Cluster

可配置属性:

名称数据类型说明默认值
timeToLiveSecondsString临时实例失效的秒数30s
blockQueryTimeToSecondslong查询请求超时秒数60

操作步骤

  1. 在 server.yaml 中配置 Mode 运行模式
  2. 配置元数据持久化仓库类型

配置示例

  • 单机模式配置方式
  1. mode:
  2. type: Standalone
  3. repository:
  4. type: JDBC
  5. props:
  6. provider: H2
  7. jdbc_url: jdbc:h2:mem:config;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL
  8. username: test
  9. password: Test@123
  • 集群模式
  1. mode:
  2. type: Cluster
  3. repository:
  4. type: zookeeper
  5. props:
  6. namespace: governance_ds
  7. server-lists: localhost:2181
  8. retryIntervalMilliseconds: 500
  9. timeToLiveSeconds: 60
  10. maxRetries: 3
  11. operationTimeoutMilliseconds: 500