一、 MogDB
1. 什么是MogDB
- MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款极致易用的企业级关系型数据库。MogDB具备金融级高可用和全密态计算的极致安全、面向多核处理器的极致性能、AI自诊断调优的极致智能能力,能够满足从核心交易到复杂计算的企业级业务需求。
- 云和恩墨致力于发挥全栈产品加服务的企业优势,优先支持鲲鹏算力,在 MogDB 的运行平台、管理工具、SQL审核和运维服务等方向推出整体解决方案,为用户提供可信赖的企业级产品和服务,为 openGauss 的开源生态持续贡献力量。
2. 适用场景
- 大并发、大数据量、以联机事务处理为主的交易型应用场景,如电商、金融、O2O、电信CRM/计费等,应用可按需选择不同的主备部署模式。
- 在工业监控与远程控制、智慧城市能力延展、智能家居、车联网等物联网应用场景下,传感设备多、采样率高、数据存储为追加模型,满足操作和分析并重的要求。
二、 ShardingSphere
1. 什么是ShardingSphere
- Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。
2. 适用场景
- Apache ShardingSphere 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 关系型数据库当今依然占有巨大市场份额,是企业核心系统的基石,未来也难于撼动,我们更加注重在原有基础上提供增量,而非颠覆。
- Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。 目前,数据分片、读写分离、数据加密、影子库压测等功能,以及 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。 开发者能够像使用积木一样定制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,仍在不断增加中。
3. 开源数字
- ShardingSphere 已于2020年4月16日成为 Apache 软件基金会的顶级项目。
- 星评增长时间线
- 贡献者增长时间线
4. 架构图
5. ShardingSphere Proxy
- 定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前提供 MySQL 和 PostgreSQL(兼容 openGauss 等基于 PostgreSQL 的数据库)版本,它可以使用任何兼容 MySQL/PostgreSQL 协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat 等)操作数据,对 DBA 更加友好。
- 向应用程序完全透明,可直接当做 MySQL/PostgreSQL 使用。
- 适用于任何兼容 MySQL/PostgreSQL 协议的的客户端。
三、如何联动
1. 概述
- 通过ShardingSphere的Proxy功能作为MogDB数据库的代理端进行数据的转发分片和流转。
- 本文通过TPCC标准程序BenchmarkSQL5.0作为模拟应用的压力发起程序。
- 通过ShardingSphere的功能可以具备分布式数据库的能力。
2. 架构图
四、安装数据库
1. 安装
- 安装两个单机数据库,数据库安装参考 MogDB/openGauss 手动部署(非OM工具)单机,主备,主备级联架构 - 墨天轮
五、配置ShardingSphere
1. 安装JAVA JDK
[root@db1 lee]# yum install java* -y [root@db1 lee]# tail -3 ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.h5.oe1.aarch64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME
2. 编译
[root@db1 lee]# git clone https://github.com/apache/shardingsphere.git [root@db1 lee]# cd shardingsphere-master [root@db1 shardingsphere-master]# nohup ./mvnw clean install -DskipTests -Prelease -T1C -Djacoco.skip=true -Dcheckstyle.skip=true -DskipITs -Drat.skip=true -Dmaven.javadoc.skip=true -B & [root@db1 shardingsphere-master]# tail -20 nohup.out [INFO] shardingsphere-integration-agent-test-plugins ...... SUCCESS [ 0.492 s] [INFO] shardingsphere-integration-agent-test-common ....... SUCCESS [ 1.173 s] [INFO] shardingsphere-integration-agent-test-metrics ...... SUCCESS [ 2.401 s] [INFO] shardingsphere-integration-agent-test-zipkin ....... SUCCESS [ 2.285 s] [INFO] shardingsphere-integration-agent-test-jaeger ....... SUCCESS [ 2.285 s] [INFO] shardingsphere-integration-agent-test-opentelemetry SUCCESS [ 2.425 s] [INFO] shardingsphere-integration-scaling-test ............ SUCCESS [ 1.020 s] [INFO] shardingsphere-integration-scaling-test-mysql ...... SUCCESS [ 2.379 s] [INFO] shardingsphere-rewrite-test ........................ SUCCESS [ 1.112 s] [INFO] shardingsphere-optimize-test ....................... SUCCESS [ 0.927 s] [INFO] shardingsphere-distribution ........................ SUCCESS [ 0.421 s] [INFO] shardingsphere-src-distribution .................... SUCCESS [ 5.154 s] [INFO] shardingsphere-jdbc-distribution ................... SUCCESS [ 1.845 s] [INFO] shardingsphere-proxy-distribution .................. SUCCESS [ 7.516 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:28 min (Wall Clock) [INFO] Finished at: 2021-10-29T11:36:59+08:00 [INFO] ------------------------------------------------------------------------ [root@db1 target]# pwd /lee/shardingsphere-master/shardingsphere-distribution/shardingsphere-proxy-distribution/target [root@db1 target]# ls apache-shardingsphere-5.0.0-RC1-SNAPSHOT-shardingsphere-proxy-bin.tar.gz archive-tmp apache-shardingsphere-5.0.0-RC1-SNAPSHOT-shardingsphere-proxy-bin.tar.gz.sha512 maven-shared-archive-resources [root@db1 target]# mv apache-shardingsphere-5.0.0-RC1-SNAPSHOT-shardingsphere-proxy-bin.tar.gz proxy.tar.gz [root@db1 target]# cp proxy.tar.gz /lee/ss/
apache-shardingsphere-5.0.0-RC1-SNAPSHOT-shardingsphere-proxy-bin.tar.gz 为proxy程序。