`
gaojingsong
  • 浏览: 1182435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【分布式mysql分库分表中间件sharding】

阅读更多

 

分布式mysql分库分表中间件,sharding领域的一站式解决方案。具备丰富、灵活的路由算法支持,能够方便DBA实现库的水平扩容和降低数据迁移成本。shark采用应用集成架构,放弃通用性,只为换取更好的执行性能与降低分布式环境下外围系统的宕机风险。目前shark每天为不同的企业、业务提供亿级别的sql读/写服务。



 

Shark的优点

完善的技术文档支持;

动态数据源的无缝切换;

丰富、灵活的分布式路由算法支持;

非proxy架构,应用直连数据库,降低外围系统依赖所带来的宕机风险;

业务零侵入,配置简单;

站在巨人的肩膀上(springjdbc、基于druid的sqlparser完成sql解析任务),执行性能高效、稳定;

提供多机sequenceid的API支持,解决多机sequenceid难题;

缺省支持基于zookeeper、redis3.x cluster作为集中式资源配置中心;

基于velocity模板引擎渲染内容,支持sql语句独立配置和动态拼接,与业务逻辑代码解耦;

提供内置验证页面,方便开发、测试及运维人员对执行后的sql进行验证;

提供自动生成配置文件的API支持,降低配置出错率;

 

 

Shark总体架构

Shark采用应用集成架构,其领域模型位于持久层(JdbcTemplate)和JDBC之间,也就是分布式数据层。



 


Shark与其它Sharding中间件功能对比

 

功能 Cobar Mycat Heisenberg Shark TDDL Sharding-JDBC
是否开源 开源 开源 开源 开源 部分开源 开源
架构模型 Proxy架构 Proxy架构 Proxy架构 应用集成架构 应用集成架构 应用集成架构
数据库支持 MySQL 任意 任意 MySQL 任意 MySQL
外围依赖 Diamond
使用复杂度 一般 一般 一般 简单 复杂 一般
技术文档支持 较少 付费 较少 丰富 一般

 

Shark的使用注意事项

不支持强一致性的分布式事务,建议在业务层依赖MQ,保证最终数据一致性;

不建议、不支持多表查询,所有多表查询sql,务必全部打散为单条sql逐条执行;

sql语句的第一个参数务必是shard key;

shard key必须是整数类型;

  • 大小: 44.6 KB
  • 大小: 102.8 KB
0
1
分享到:
评论

相关推荐

    Shark分布式mysql分库分表中间件sharding领域的一站式解决方案

    Shark 分布式mysql分库分表中间件,sharding领域的一站式解决方案。具备丰富、灵活的路由算法支持,能够方便DBA实现库的水平扩容和降低数据迁移成本。shark采用应用集成架构,放弃通用性,只为换取更好的执行性能与...

    springMvc Mybatis mysql 分库分表-shardingJdbc.zip

    Spring MVC、MyBatis和MySQL是常见的Web开发框架与数据库系统,而ShardingJDBC则是阿里巴巴开源的一款分布式数据库中间件,用于实现数据库的分库分表。本项目结合了这些技术,旨在提供一种高效且可扩展的解决方案。 ...

    Node.js 实现的 MySQL 分表分库中间件,用于海量数据的分布式集群储存管理和高并发访问。.zip

    本文将深入探讨基于Node.js实现的MySQL分表分库中间件,它在分布式集群环境中起到至关重要的作用。 首先,Node.js是一种流行的JavaScript运行环境,它允许开发人员使用JavaScript进行服务器端编程。Node.js的异步非...

    MySQL分库分表技术

    **MySQL分库分表技术** 随着互联网业务的快速发展,数据量呈现爆炸性增长,单个数据库的性能瓶颈问题日益突出。在这种背景下,MySQL的分库分表技术应运而生,旨在解决高并发、大数据量场景下的性能挑战。本篇将深入...

    sharding + mybatis-plus 分库分表

    总的来说,“Sharding + Mybatis-Plus 分库分表”是一种有效的解决大数据量场景下的数据库扩展策略,它通过Java的中间件技术,实现了数据库层面的水平扩展,结合Mybatis-Plus的便利性,降低了开发复杂度,提升了系统...

    sharding分库分表demo

    在IT行业中,数据库扩展是解决高并发、大数据量场景下的重要策略之一,"sharding分库分表"就是其中一种常见的方法。本示例通过整合一系列技术,包括SpringBoot、ShardingSphere、Swagger和MyBatis-Plus,来演示如何...

    mysql分库分表-mysql-sharding-jdbc.zip

    `mysql-sharding-jdbc` 是一个用于 MySQL 数据库分片的 Java 框架,它提供了 JDBC 驱动接口,使得开发者可以方便地在应用层进行分库分表操作。 一、MySQL 分库分表原理 1. 分库:将一个大型数据库拆分为多个小型...

    当当开源sharding-jdbc-轻量级数据库分库分表中间件

    ### 当当开源Sharding-JDBC:轻量级数据库分库分表中间件 #### 概述 当当网近期开源了一款名为Sharding-JDBC的轻量级数据库分库分表中间件。作为一款高性能、易用性高的数据库水平分片框架,Sharding-JDBC在设计上...

    MySQL分库分表-springboot-sharding.zip

    在本项目“MySQL分库分表-springboot-sharding”中,开发者使用了Spring Boot框架结合ShardingSphere来实现这一功能。ShardingSphere是一个开源的数据库中间件集合,它提供了数据分片、分布式事务和数据库治理等功能...

    java mysql 分库分表详解

    Sharding-Proxy则是一个独立的数据库服务,对外提供与原生数据库兼容的TCP协议服务,支持MySQL、PostgreSQL等,使得应用无需修改代码即可使用分库分表功能。 分库分表的设计和实施需要考虑诸多因素,如数据一致性、...

    分库分表 各种mysql中间件 总结(csdn)————程序.pdf

    本篇文章将对各种MySQL中间件进行总结,重点关注如何使用ShardingSphere进行分库分表以及相关的配置。首先,我们需要引入必要的依赖库,包括MySQL的JDBC驱动、ShardingSphere的Spring Boot Starter、阿里巴巴的Druid...

    分布式MySQL数据库中间件,支持数据的水平、垂直拆分,支持分库分表,支持读写分离,支持结果集合并,支持故障自动切换。.zip

    在这个主题中,我们将深入探讨分布式MySQL数据库中间件的核心特性,包括分库分表、读写分离、结果集合并以及故障自动切换。 1. 分库分表:这是解决单库性能瓶颈的关键策略。水平拆分(Sharding)是指将数据按照一定...

    mysql分库分表-atlantic.zip

    1. **MyCat**:开源的MySQL分库分表中间件,支持自动路由、分布式事务等。 2. **ShardingSphere**:Apache孵化器项目,提供分库分表、读写分离等功能,兼容多种数据库。 3. **OceanBase**:阿里巴巴开源的分布式...

    sharding-proxy实现分表

    在分库分表场景中,MySQL 作为底层数据库,提供数据存储和事务处理能力。它支持InnoDB存储引擎,具备ACID特性,适合对数据一致性有高要求的应用。 ### 3. Sharding-Proxy 的作用 Sharding-Proxy 是一个数据库...

    分库分表总结

    2. 并发事务:分库分表后,跨库跨表的事务处理变得复杂,可能需要引入分布式事务解决方案,如两阶段提交、补偿型事务等。 3. 联合查询:由于数据分布在不同库表,联表查询需要额外的中间件支持,如ShardingSphere、...

    mysql3库3表分库分表解决方案之 Apache ShardingSphere.zip

    Apache ShardingSphere,作为一款开源的分布式数据库中间件,提供了完善的分库分表解决方案,帮助开发者解决这一问题。本资料包将详细介绍如何利用ShardingSphere在MySQL3库上对3个表进行分库分表。 一、...

    应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

    Sharding-JDBC是阿里巴巴开源的一款轻量级的数据库中间件,它允许开发者在不改变任何数据库语句的情况下,实现分库分表的功能,从而提高系统的读写性能。MyBatis作为流行的持久层框架,与Sharding-JDBC的结合可以...

    轻量级当当数据库中间件Sharding-JDBC深度解析

    为了应对这些挑战,分库分表、读写分离、分布式主键、柔性事务以及数据治理等技术应运而生,而Sharding-JDBC正是这样一个集上述功能于一体的轻量级数据库中间件解决方案。 Sharding-JDBC是由当当网开源的一个分布式...

    Sharding-JDBC使用案例-分库分表

    Sharding-JDBC是由阿里巴巴开源的轻量级Java框架,它定位为数据库中间件,提供了一种无需修改现有应用代码就能实现数据库分库分表的能力。Sharding-JDBC完全基于JDBC标准,可以理解为一个增强版的数据库驱动,它工作...

    Spring Boot 集成 Sharding-JDBC + Mybatis-Plus 实现分库分表功能

    本篇文章将详细讲解如何使用Spring Boot结合Sharding-JDBC和Mybatis-Plus实现分库分表功能。 一、Sharding-JDBC简介 Sharding-JDBC是由Apache ShardingSphere项目提供的一个轻量级数据库中间件,它作为JDBC驱动...

Global site tag (gtag.js) - Google Analytics