ShardingSphere三大组件的介绍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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 数据库连接
Java异常处理的20个最佳实践:告别系统崩溃
你是否在为如何处理异常而困扰? 你是否曾被面试官问道Java异常处理的最佳实践有哪些? 本文汇总了Java异常处理的20个最佳实践:让你告别系统崩溃,面试游刃有余
1576 2
Java异常处理的20个最佳实践:告别系统崩溃
|
缓存 网络协议 前端开发
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
|
12月前
|
存储 关系型数据库 MySQL
【赵渝强老师】执行MySQL的冷备份与冷恢复
冷备份是在数据库关闭状态下进行的备份,速度快且恢复简单,但备份期间数据库不可用。本文通过一个MySQL数据库的示例,详细演示了冷备份和恢复的步骤,包括备份文件、模拟错误、恢复数据等过程。
280 0
Flyway Validate failed: Migration checksum mismatch for migration version 1.0.0.01 错误
在运行系统的时候出现错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resour...
3091 0
|
数据采集 JSON 数据处理
加载数据模型:在数据采集中实现动态数据处理
在现代网络爬虫技术中,动态数据处理对于提升采集效率和准确性至关重要。本文以拼多多为例,探讨了如何通过加载数据模型实现动态数据处理,并结合代理IP、Cookie、User-Agent设置及多线程技术提升数据采集效率。文中详细分析了动态数据模型的必要性、代理IP的应用、Cookie和User-Agent的设置,以及多线程技术的实现。通过Python代码示例展示了如何加载拼多多的商品数据模型,并实时获取商品信息,显著提升了数据采集的速度和稳定性。此方法在面对复杂网站结构和防爬虫机制时表现出色,适用于多种应用场景。
554 1
加载数据模型:在数据采集中实现动态数据处理
|
算法 Java 数据库连接
【分库分表】基于mysql+shardingSphere的分库分表技术
【分库分表】基于mysql+shardingSphere的分库分表技术
669 0
|
负载均衡 算法 Java
Sharding-JDBC如何实现读写分离
通过以上步骤,Sharding-JDBC能够实现数据库的读写分离,从而提高应用程序的读取性能。欢迎关注威哥爱编程,一起学习成长。
281 0
|
数据采集 SQL 关系型数据库
Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫
Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫
441 14
|
人工智能 机器人
Kimi仅用5秒钟就帮我抓取了5页文章素材
Kimi仅用5秒钟就帮我抓取了5页文章素材
266 3