ShardingSphere三大组件的介绍

简介: ShardingSphere三大组件的介绍

公众号merlinsea


  • 什么是ShardingSphere?

  • 官网:https://shardingsphere.apache.org/document/current/en/overview/
  • Apache ShardingSphere 是一个由一套分布式数据库解决方案组成的开源生态系统,包括 JDBC、Proxy & Sidecar (Planning) 3 个独立产品。它们都提供了数据横向扩展、分布式事务和分布式治理的功能,适用于Java同构、异构语言、云原生等多种场景。
  • Apache ShardingSphere旨在合理利用分布式系统中已有数据库的计算和存储能力,而不是设计一个全新的数据库。目标是最小化或消除 底层数据库碎片化带来的挑战。


  • 什么是Sharding jdbc?

  • ShardingSphere-JDBC 将自己定义为一个轻量级的【Java 框架】,在 Java JDBC 层提供额外的服务,仅支持java语言
  • 客户端直接连接数据库,以jar的形式提供服务,不需要额外的部署和依赖。
  • 它可以被认为是一个增强的JDBC驱动,完全兼容JDBC和各种ORM框架。
  • sharding jdbc采用去中心化的架构,即没有一个中间代理集中统一管理连接数据库的连接资源。

  • 特点:
  • 适用于任何基于JDBC的ORM框架,如JPA、Hibernate、Mybatis、Spring JDBC Template或直接使用JDBC;
  • 支持任何第三方数据库连接池,如DBCP、C3P0、BoneCP、HikariCP;
  • 支持任何类型的 JDBC 标准数据库:MySQL、PostgreSQL、Oracle、SQLServer 和任何 JDBC 适配的数据库。

640.jpg


  • 什么是sharding proxy?

  • 数据库代理端,提供封装了数据库⼆进制协议的服务端版本,⽤于完成对异构语⾔的⽀持。
  • 向应⽤程序完全透明,可直接当做 MySQL/PostgreSQL。
  • 它可以使⽤任何兼容 MySQL/PostgreSQL 协议的访问客户端(如:MySQL Command Client, MySQL Workbench,Navicat 等)操作数据。


640.jpg


  • 什么是sharding sidecar?【目前仍在规划中】

  • ShardingSphere-Sidecar 将自己定义为 Kubernetes 环境的云原生数据库代理,以 Sidecar 的形式负责所有的数据库访问。它提供 了一个与数据库交互的网格层,我们称之为数据库网格Database Mesh.

  • 数据库网格强调如何将分布式数据访问应用程序与数据库连接起来,以交互为中心,有效组织杂乱的应用程序与数据库之间的交互。

  • 使用 Database Mesh 访问数据库的应用程序和数据库将形成一个大的网格系统,只需将它们相应地放在正确的位置即可。它们都由网格层控制。


640.jpg


  • 三大组件的对比
  • 异构语言、性能、是否中心化 是我们开发选型的核心的关注点


640.jpg


下面介绍一下我们的算法训练营,目前算法已经整理到了50多题了,如果大家对算法刷题有困难的可以找我帮忙,我带你手把手刷题。

640.png


我后期还会推出数据结构java版本,下面我给出我的目录大纲,大概今年九月份到十月份推出~

640.png


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
Java 数据安全/隐私保护 Sentinel
面试官:Sentinel是如何实现限流的?
面试官:Sentinel是如何实现限流的?
2499 1
|
存储 NoSQL Java
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
1601 0
|
监控 Java 测试技术
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
|
11月前
|
关系型数据库 MySQL Java
SpringBoot集成Sharding-Jdbc分库分表
ShardingSphere是一套开源分布式数据库中间件解决方案,包含Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar三款产品,提供数据分片、分布式事务和数据库治理功能,适用于多样化应用场景。
1325 0
SpringBoot集成Sharding-Jdbc分库分表
|
11月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
15567 60
|
存储 SQL 算法
搞定了 6 种分布式ID,分库分表哪个适合做主键?
在《ShardingSphere5.x分库分表原理与实战》系列的第七篇文章中,作者探讨了分布式ID在分库分表中的重要性,以及如何利用`ShardingSphere-jdbc`的多种主键生成策略。文章介绍了`UUID`、`NanoID`、自定义雪花算法和`CosId`等策略的优缺点,并警告不要在SQL中手动拼接主键字段。此外,文章还展示了如何配置这些策略,并提醒读者`CosId`在5.2.0版本可能不可用。最后,文章讨论了如何自定义分布式主键生成算法,并强调选择策略时要考虑全局唯一性、性能和易用性。
1782 122
|
SQL 算法 Java
(二十六)MySQL分库篇:Sharding-Sphere分库分表框架的保姆级教学!
前面《MySQL主从原理篇》、《MySQL主从实践篇》两章中聊明白了MySQL主备读写分离、多主多写热备等方案,但如果这些高可用架构依旧无法满足业务规模,或业务增长的需要,此时就需要考虑选用分库分表架构。
8087 4
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
1848 8
|
JSON API UED
快递查询 API 对接指南(Python示例)
在电商与物流快速发展背景下,实时快递查询成为系统开发常见需求。本文介绍如何通过快递查询API快速集成物流信息,提升自动化水平与用户体验,并提供Python调用示例及问题解决方案。
1067 0