ShardingSphere:强大的分布式数据库中间件【图文】

这篇具有很好参考价值的文章主要介绍了ShardingSphere:强大的分布式数据库中间件【图文】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ShardingSphere的诞生

shardingsphere中转站,oracle,数据库,服务器

ShardingSphere的结构

Sharding-JDBC :它提供了一个轻量级的 Java 框架,在 Java 的 JDBC 层提供额外的服务。使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。Sharding-JDBC主要用于嵌入到应用程序中,使应用程序能够透明地使用分片和读写分离功能,而无需对应用程序进行大规模修改。

Sharding-Proxy :它以代理的形式部署在应用程序与数据库之间,实现了对 SQL 的解析和改写以及请求的转发。用户无需修改任何应用程序代码,只需通过配置文件或 API 接口进行分片规则设置,即可实现数据分片和读写分离等功能。Sharding-Proxy主要用于需要将数据库访问透明地分片化的情况,而不想在应用程序中引入Sharding-JDBC的情况。它也可以用于监控和审计数据库操作。

Sharding-Sidecar :它将作为一个独立的微服务,为用户提供更为灵活和强大的数据分片、分布式事务和数据治理等功能。Sarding-SideCar 主要用于云原生环境。目前正在开发

shardingsphere中转站,oracle,数据库,服务器

ShardingSphere支持的水平分片和垂直分片的不同

垂直分片:是在应用层面上进行的一种策略,它主要是为了解决单台数据库性能瓶颈的问题,将数据根据业务逻辑分类进行分片存储。每个表中的数据会被分散到不同的数据库中。它的优点是能够减轻单个库的负载压力,方便数据维护等;缺点是没有根本解决单库数据量过大、并发性高的性能瓶颈,并且可能会产生跨服务的事务一致性问题。在应用模块间存在较强耦合关系的情况下,这种策略可能更适合使用。
水平分片:是在数据库层面上进行的一种策略,能够将数据根据某种规则分散至多个库或表中,每个分片仅包含数据的一部分。例如,可以根据某个字段(或某几个字段),如主键进行分片存储。这种策略可以有效地解决单库数据量过大、并发性高的性能瓶颈,提高系统的稳定性和负载能力。水平分片在理论上突破了单机数据量处理的瓶颈,并且扩展相对自由,是分库分表的标准解决方案。

执行一条sql语句时,ShardingSphere的步骤解析

shardingsphere中转站,oracle,数据库,服务器

ShardingSphere 解析配置信息,并且支持将配置信息上传到第三方注册中心。
将要执行的 SQL 语句解析。
根据解析上下文匹配数据库和表的分片策略,并生成 SQL 的路由路径。

ShardigSphere根据用户给的SQL语句通过改写引擎修改为在数据库中执行的语句
SQL改写分为正确性改写和优化改写。
ShardingSphere 采用一套自动化的执行引擎,负责将路由和改写完成之后的真实 SQL 安全且高效发送到底层数据源执行。
结果归并:将从各个数据节点获取的多数据结果集,组合成为一个结果集并正确的返回至请求客户端。ShardingSphere 内部实现了流式归并和内存归并两种方案。

面对读写分离情况,ShardingSphere如何处理的?

数据源配置:首先,在应用程序的配置中,你需要配置多个数据库数据源,包括主库(用于写操作)和多个从库(用于读操作)。每个数据源都有一个唯一的名称和连接信息。

SQL解析:当应用程序发送SQL查询请求时,ShardingSphere的SQL 执行引擎会拦截并解析SQL语句。

读写分离规则:ShardingSphere通过读写分离规则来确定查询应该发送到主库还是从库。这些规则可以在配置文件中定义,通常基于SQL的类型(SELECT、INSERT、UPDATE、DELETE)来决定路由。

路由查询:根据读写分离规则,Sharding-JDBC将查询请求路由到适当的数据源。如果是SELECT查询,它将路由到一个从库;如果是INSERT、UPDATE或DELETE操作,它将路由到主库。这确保了写操作总是发送到主库,而读操作可以发送到从库,以分担主库的负载。

执行查询:一旦确定了目标数据源,Sharding-JDBC会将查询请求转发到相应的数据库。主库用于写操作,从库用于读操作。

返回结果:数据库执行查询后,将结果返回给Sharding-JDBC,然后Sharding-JDBC将结果返回给应用程序。

shardingsphere中转站,oracle,数据库,服务器文章来源地址https://www.toymoban.com/news/detail-860424.html

到了这里,关于ShardingSphere:强大的分布式数据库中间件【图文】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式数据库HBase

    HBase是一个高可靠、高性能、 面向列 、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和把结构化的松散数据。 HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用 廉价计算机集群 处理由超过10亿行数据和数百万列元素组成的数据表。

    2024年02月09日
    浏览(57)
  • 分析型数据库:分布式分析型数据库

    分析型数据库的另外一个发展方向就是以分布式技术来代替MPP的并行计算,一方面分布式技术比MPP有更好的可扩展性,对底层的异构软硬件支持度更好,可以解决MPP数据库的几个关键架构问题。本文介绍分布式分析型数据库。 — 背景介绍— 目前在分布式分析型数据库领域,

    2023年04月14日
    浏览(60)
  • 分布式数据库-事务一致性

    version: v-2023060601 author: 路__ 分布式数据库的“强一致性”应该包含两个方面: serializability(串行) and linearizability(线性一致) ,上述图为“Highly Available Transactions: Virtues and Limitations”论文中对于一致性模型的介绍。图中箭头表示一致性模型之间的关系。对于异步网络上的分

    2024年02月08日
    浏览(53)
  • tim实践系列——分布式数据存储与动态数据库扩容

    前言: tim是去中心化分布式即时通讯引擎。不依赖于任何中心服务器,采用去中心化分布式架构,解决传统中心化通讯方式的问题,去中心化分布式架构的通讯引擎的各个节点之间相互连接,形成一个庞大的分布式网络。可以轻松地扩展服务规模,支持更多的用户和业务需求

    2024年02月02日
    浏览(50)
  • 11.云原生分布式数据库之TIDB

    云原生专栏大纲 从后端视角、运维视角和基础架构视角来看,使用 TiDB 作为数据库系统可以获得分布式架构、高可用性、强一致性、事务支持、水平扩展、高性能、简化运维、灵活的扩展和配置、集成的监控和告警等优势。这些优势使得 TiDB 成为处理大规模数据和高并发请求

    2024年02月01日
    浏览(64)
  • 分布式数据库Apache Doris简易体验

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月06日
    浏览(58)
  • 聊聊分布式 SQL 数据库Doris(七)

    Doris的存储结构是类似LSM-Tree设计的,因此很多方面都是通用的,先阅读了解LSM相关的知识,再看Doris的底层存储与读取流程会清晰透彻很多,LSM基本知识如下: 原理:把各种数据先用log等形式组织在内存中(该数据结构称为MemTable,且有序);到达一定数据量后再批量merge写入磁

    2024年02月05日
    浏览(48)
  • 聊聊分布式 SQL 数据库Doris(四)

    FE层的架构都能在网上找到说明. 但BE层的架构模式、一致性保障、与FE层之间的请求逻辑,数据传输逻辑等,我个人暂时没有找到相应的博客说明这些的。当然这些是我个人在学习与使用Doris过程中,对内部交互逻辑与实现感兴趣才有这些疑问. 还好现在有GPT这类大模型,有了

    2024年02月05日
    浏览(58)
  • 聊聊分布式 SQL 数据库Doris(五)

    阅读 Doris SQL 原理解析,总结下Doris中SQL解析流程: 词法识别:解析原始SQL文本,拆分token 语法识别:将token转换成AST 单机逻辑查询计划:将AST经过一系列的优化(比如,谓词下推等)成查询计划,提高执行性能与效率。 分布式逻辑查询计划:根据分布式环境(数据分布信息

    2024年02月05日
    浏览(54)
  • 聊聊分布式 SQL 数据库Doris(九)

    优化器的作用是优化查询语句的执行效率,它通过评估不同的执行计划并选择最优的执行计划来实现这一目标。 CBO: 一种基于成本的优化器,它通过评估不同查询执行计划的成本来选择最优的执行计划。CBO会根据数据库系统定义的统计信息以及其他因素,对不同的执行计划进

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包