游客发表
Apache ShardingSphere 是张图一款分布式的数据库生态系统,它包含两大产品:
ShardingSphere-ProxyShardingSphere-JDBC很多同学对于 ShardingSphere-JDBC 已经能非常熟悉的速入使用了,但关于网上关于 ShardingSphere-Proxy 5.5 的张图使用教程却非常少。
所以这篇文章,速入笔者尝试带大家快速入门 ShardingSphere-Proxy 5.5 ,张图理解它的速入基本原理以及实战流程。
图片
ShardingSphere-Proxy 定位为透明化的张图数据库代理端,通过实现数据库二进制协议,速入对异构语言提供支持。张图目前提供 MySQL 和 PostgreSQL 协议,速入透明化数据库操作,张图对 DBA 更加友好。速入
向应用程序完全透明,张图可直接当做 MySQL/PostgreSQL 使用;兼容 MariaDB 等基于 MySQL 协议的速入数据库,以及 openGauss 等基于 PostgreSQL 协议的张图数据库;适用于任何兼容 MySQL/PostgreSQL 协议的的客户端,如:MySQL Command Client, MySQL Workbench, Navicat 等。
图片
代理层介于应用程序与数据库间,每次请求都需要做一次转发,请求会存在额外的时延。
这种方式对于应用非常友好,应用基本零改动,和语言无关,可以通过连接共享减少连接数消耗。免费信息发布网
当我们在 Proxy 和 JDBC 两种模式选择时,可以参考下表对照:
JDBC
Proxy
数据库
任意
MySQL/PostgreSQL
连接消耗数
高
低
异构语言
仅Java
任意
性能
损耗低
损耗略高
无中心化
是
否
静态入口
无
有
ShardingSphere-Proxy 提供静态入口以及异构语言的支持,独立于应用程序部署,适用于 OLAP 应用以及对分片数据库进行管理和运维的场景。
ShardingSphere-JDBC 采用无中心化架构,与应用程序共享资源,适用于 Java 开发的高性能的轻量级 OLTP 应用;
在业务相对复杂的场景里,可以采用混合部署的模式。
图片
通过混合使用 ShardingSphere-JDBC 和 ShardingSphere-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,使得架构师更加自由地调整适合于当前业务的最佳系统架构。
ShardingSphere-Proxy 的启动方式有三种:二进制包、Docker 和 Helm,可以选择单机部署或集群部署。
本文将介绍如何通过单机二进制包方式启动 ShardingSphere-Proxy 版本号:v 5.5.0 。
下载访问 下载页面,获取 ShardingSphere-Proxy 二进制安装包, 解压缩的文件目录如下:
图片
下载驱动 mysql-connector-java-5.1.49.jar 或者 mysql-connector-java-8.0.11.jar 放入 lib 包。
图片
图片
因为默认文件内容被注释掉了,云服务器提供商所以去掉注释,如下图:
图片
在 Linux 操作系统上,运行 bin/start.sh;在 Windows 操作系统上,运行 bin/start.bat,以启动 ShardingSphere-Proxy。
图片
然后使用 MySQL 终端命令连接 ShardingSphere-Proxy 服务端:
复制# 将 {xx} 替换为实际参数 mysql -h {ip} -u {username} -p{password} -P 3307 # 示例命令 mysql -h 127.0.0.1 -u root -proot -P 33071.2.3.4.
图片
现在我们需要展示新的订单库(8个分片),需要修改分片策略 。
ShardingSphere-Proxy 支持配置多个逻辑数据源,每个以database- 前缀命名的 YAML 配置文件,即为一个逻辑数据源。
图片
因为我们是自定义分片算法,shardingsphere 内置算法并不满足,所以我们必须先编写自定义算法类。
图片
图片
图片
最后,我们启动 Proxy 服务 , 我们发现通过 MySQL Client 查询数据库时,出现了我们配置的订单库 :myorder ,以及订单库里的三个逻辑表 。如下图:
图片
通过 shardingjdbc5-spring 模块,插入多条记录到 4 个分片里,可以通过 navicat 连接 proxy 查看效果:
图片
然后我们模拟在 myorder 逻辑数据库中新增一条订单记录,执行成功并且查询页正常的情况下,亿华云发现分片 ds0 中存储了刚插入的那条数据。
图片
笔者将 proxy 算法模块也添加到了分库分表实战项目 shardingsphere-jdbc-demo 里,有兴趣的同学,可以看看这个项目。
图片
Github 地址:https://github.com/makemyownlife/shardingsphere-jdbc-demo
随机阅读
热门排行
友情链接