Mycat与ShardingSphere如何选择(未完待续)

区别

MycatSharding-JDBCSharding-ProxySharding-Sidecar
官方网站官方网站官方网站官方网站官方网站
源码地址GitHubGitHubGitHubGitHub
官方文档Mycat 权威指南官方文档官方文档官方文档
开发语言JavaJavaJavaJava
开源协议GPL-2.0/GPL-3.0Apache-2.0Apache-2.0Apache-2.0
数据库MySQL
Oracle
SQL Server
PostgreSQL
DB2
MongoDB
SequoiaDB
MySQL
Oracle
SQLServer
PostgreSQL
任何遵循 SQL92 标准的数据库
MySQL/PostgreSQLMySQL/PostgreSQL
连接数
应用语言任意Java任意任意
代码入侵需要修改代码
性能损耗略高损耗低损耗略高损耗低
无中心化
静态入口
管理控制台Mycat-webSharding-UISharding-UISharding-UI
分库分表单库多表/多库单表✔️✔️✔️
多租户方案✔️
读写分离✔️✔️✔️✔️
分片策略定制化✔️✔️✔️✔️
分布式主键✔️✔️✔️✔️
标准化事务接口✔️✔️✔️✔️
XA强一致事务✔️✔️✔️✔️
柔性事务✔️✔️✔️
配置动态化开发中✔️✔️✔️
编排治理开发中✔️✔️✔️
数据脱敏✔️✔️✔️
可视化链路追踪✔️✔️✔️
弹性伸缩开发中开发中开发中开发中
多节点操作分页
去重
排序
分组
聚合
分页
去重
排序
分组
聚合
分页
去重
排序
分组
聚合
分页
去重
排序
分组
聚合
跨库关联跨库 2 表 Join
ER Join
基于 caltlet 的多表 Join
IP 白名单✔️
SQL 黑名单✔️
存储过程✔️

一、ShardingSphere

  • ShardingSphere-JDBC
  • ShardingSphere-Proxy
  • ShardingSphere-Sidecar(TODO)

Mycat与ShardingSphere如何选择(未完待续)

混合架构

   ShardingSphere-JDBC 采用无中心化架构,适用于 Java 开发的高性能的轻量级 OLTP 应用;ShardingSphere-Proxy 提供静态入口以及异构语言的支持,适用于 OLAP 应用以及对分片数据库进行管理和运维的场景。
   Apache ShardingSphere 是多接入端共同组成的生态圈。 通过混合使用 ShardingSphere-JDBC 和 ShardingSphere-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,使得架构师更加自由地调整适合与当前业务的最佳系统架构。

Mycat与ShardingSphere如何选择(未完待续)

这里的代理服务,是单机

Sharding-Proxy整合Haproxy实现高可用

这里Haproxy负载了多MySQL节点,不是多Sharding-Proxy服务节点,如果用NGINX服务反向代理做负载均衡能否实现Proxy代理服务高可用

Apache ShardingSphere Proxy 负载均衡小练习

这个是结合zookper来处理的高可用,里面有服务注册,和节点注册,需要研究看看

二、Mycat

HaProxy+Keepalived+Mycat高可用集群配置

Mycat与ShardingSphere如何选择(未完待续)

集群部署图理解:
1、keepalived和haproxy必须装在同一台机器上(如192.168.46.161机器上,keepalived和haproxy都要安装),keepalived负责为该服务器抢占vip(虚拟ip),抢占到vip后,对该主机的访问可以通过原来的ip(192.168.46.161)访问,也可以直接通过vip(192.168.46.180)访问。

2、192.168.46.162上的keepalived也会去抢占vip,抢占vip时有优先级,配置keepalived.conf中的(priority 150 #数值愈大,优先级越高,192.168.46.162上改为120,master和slave上该值配置不同)决定。但是一般哪台主机上的keepalived服务先启动就会抢占到vip,即使是slave,只要先启动也能抢到。

3、haproxy负责将对vip的请求分发到mycat上。起到负载均衡的作用,同时haproxy也能检测到mycat是否存活,haproxy只会将请求转发到存活的mycat上。

4、如果一台服务器(keepalived+haproxy服务器)宕机,另外一台上的keepalived会立刻抢占vip并接管服务。如果一台mycat服务器宕机,haporxy转发时不会转发到宕机的mycat上,所以mycat依然可用。

三、痛点和选型

功能MyCatShardingShpere
联合查询最多支持2表(Share Join)不支持
高可用HaProxy+Keepalived+Mycatzk方式需要调研
动态建表不支持不支持
侵入性除多表联合查询外,不需要修改代码,
要么修改mycat相关源码,
要么查出相关数据,使用java代码做关联
需要修改代码
代码集成不需要集成到服务需要集成到服务中
故障转移节点自判断,会有误判断操作,若多节点下,
单节点服务存在误判断,其他节点与服务不知道,此时会出现多点写入,若按照时间分片,此时数据错乱。
sharding-ui界面下线,非自动

Mycat与ShardingSphere如何选择(未完待续)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八方来财添好运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值