关于数据库:『征文精选』ShardingSphereProxyBase-事务基于-Seata-验证

50次阅读

共计 2044 个字符,预计需要花费 6 分钟才能阅读完成。

中文社区征文活动启动一周啦,咱们陆陆续续收到了很多同学的优秀作品,明天为大家举荐其中的一篇,来自【ID:RaigorJiang】同学的实际心得。
同时欢送更多的小伙伴参加,咱们将继续为大家更新优良文章。

大家好,我是 Raigor,Apache ShardingSphere Committer,同时也算是 ShardingSphere 的资深用户。

从 ShardingSphere 3.1.0 开始,我负责的业务零碎就接入了 ShardingSphere-JDBC 和 ShardingSphere-Proxy,造成了如下的混合架构:

其中 Web 端利用接入 ShardingSphere-JDBC,与接入 Proxy 相比,ShardingSphere-JDBC 缩小了网络层的调用,SQL 执行性能更高。

另一方面,部署一个 ShardingSphere-Proxy 服务,应用与 ShardingSphere-JDBC 完全一致的数据源和分片规定(YAML 配置),这样开发和运维人员就能够通过 Navicat、DBeaver 这样的客户端连贯到 Proxy,不便查问和治理分片后的大量数据。

不过,在应用过程中仍然是有一些不便的:

  • 若要新增一个 sharding table rule,JDBC 端须要批改配置文件,Proxy 端也须要同步批改;
  • 批改配置不能实时失效,须择机重启零碎;
  • 随着分片规定的增多,配置文件越来越长,保护复杂度也在减少;
  • 部署了多个利用和 Proxy,配置文件有多份,手工保护可能导致各个文件内容程序不统一;
  • 利用和配置文件部署在云服务器上,改远端文件比本地文件总要麻烦一点;
  • 开发者一边通过 Navicat 治理数据,一边通过 SSH 调整配置,要在多个工具间来回切换;
  • 等等。

当然,在接入 Apache ShardingSphere 进行数据分片后,整个利用零碎的性能失去巨幅晋升,之前提到的不便也不是大问题了,「理解万岁!」。


工夫来到 2021 年 11 月,Apache ShardingSphere 5.0.0 GA 版本正式公布,DistSQL 就是 5.0.0 中的一个重磅个性。
有了 DistSQL,用户能够从繁冗的 YAML 配置文件中解脱进去,当初:

  • 若要新增一个 sharding table rule:执行 CREATE SHARDING TABLE RULE 语句,JDBC 端和 Proxy 端同步;
  • 批改配置实时失效,无需重启;
  • 分片规定增多没关系,SHOW 语句准确过滤:SHOW SHARDING TABLE RULE t_order
  • 多个利用和 Proxy 共用配置核心,配置仅需保护一份;
  • 没有批改远端配置文件的懊恼了;
  • 一个 SQL 客户端(如 Navicat)搞定数据管理和配置管理,不必切换客户端。

看,之前的不便全都隐没了,这体验:

值得注意的是,要实现以上成果,原来的零碎架构只须要减少一个注册核心,让 ShardingSphere-JDBC 和 ShardingSphere-Proxy 两端同时接入同一个注册核心上:

配置注册核心的形式也很简略,像这样:

mode:
  type: Cluster
  repository:
    type: ZooKeeper
    props:
      namespace: governance_ds
      server-lists: localhost:2181
      retryIntervalMilliseconds: 500
      timeToLiveSeconds: 60
      maxRetries: 3
      operationTimeoutMilliseconds: 500
  overwrite: false

👆以上配置的阐明可参考:https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/yaml-config/mode/
就这样,通过 DistSQL,开发和运维的体验失去了极大的晋升,那有没有什么限度呢?

很遗憾,目前还有一点:DistSQL 只能通过 Proxy 执行,即如果 ShardingSphere-JDBC 的用户想要动静批改配置,须要通过注册核心接入一个 Proxy 来实现需求。

当然,Apache ShardingSphere 提供了一个凋谢的、疾速倒退的社区,将来更多的精彩,让咱们携手前行,刮目相待。

【参考】
对于 DistSQL 更具体的操作演示,可浏览: https://community.sphere-ex.com/t/topic/123

因为版本迭代,若发现个别语句不能应用,还请对照官网文档:https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-proxy/distsql/usage/。

征文活动继续进行中,同时咱们还开设了 SphereEx-Boot 暗藏工作,欢送更多的小伙伴参加赢好礼,入选公众号还可取得稿费哦~点击链接中转征文活动哦

欢送关注公众号(SphereEx),社区优良文章继续更新,第一工夫浏览理解。

正文完
 0