当前位置: 首页 > news >正文

Apache ShardingSphere数据分片弹性伸缩加解密中间件

Apache ShardingSphere

Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。

软件背景

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。

ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与NoSQL和NewSQL是并存而非互斥的关系。NoSQL和NewSQL作为新技术探索的前沿,放眼未来,拥抱变化,是非常值得推荐的。反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物本质。 关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

ShardingSphere已经在2020年4月16日从Apache孵化器毕业,成为Apache顶级项目。 欢迎通过shardingsphere的dev邮件列表与我们讨论。

ShardingSphere Scope

核心组件

Sharding-JDBC

定位为轻量级Java框架,在Java的JDBC层提供的额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。

  • 适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
  • 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
  • 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92标准的数据库。

Sharding-JDBC Architecture

Sharding-Proxy

定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat等)操作数据,对DBA更加友好。

  • 向应用程序完全透明,可直接当做MySQL/PostgreSQL使用。
  • 适用于任何兼容MySQL/PostgreSQL协议的的客户端。

Sharding-Proxy Architecture

Sharding-Sidecar(TODO)

定位为Kubernetes的云原生数据库代理,以Sidecar的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的的啮合层,即Database Mesh,又可称数据网格。

Database Mesh的关注重点在于如何将分布式的数据访问应用与数据库有机串联起来,它更加关注的是交互,是将杂乱无章的应用与数据库之间的交互有效的梳理。使用Database Mesh,访问数据库的应用和数据库终将形成一个巨大的网格体系,应用和数据库只需在网格体系中对号入座即可,它们都是被啮合层所治理的对象。

Sharding-Sidecar Architecture

Sharding-JDBCSharding-ProxySharding-Sidecar
数据库任意MySQLMySQL
连接消耗数
异构语言仅Java任意任意
性能损耗低损耗略高损耗低
无中心化
静态入口

混合架构

Sharding-JDBC采用无中心化架构,适用于Java开发的高性能的轻量级OLTP应用;Sharding-Proxy提供静态入口以及异构语言的支持,适用于OLAP应用以及对分片数据库进行管理和运维的场景。

ShardingSphere是多接入端共同组成的生态圈。 通过混合使用Sharding-JDBC和Sharding-Proxy,并采用同一注册中心统一配置分片策略,能够灵活的搭建适用于各种场景的应用系统,架构师可以更加自由的调整适合于当前业务的最佳系统架构。

ShardingSphere Hybrid Architecture

相关文章:

Apache ShardingSphere数据分片弹性伸缩加解密中间件

Apache ShardingSphere Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。 软件背景 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding…...

Django+Vue家居全屋定制系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…...

如何把自动获取的ip地址固定

在大多数网络环境中,‌设备通常会自动从DHCP服务器获取IP地址。‌这种动态分配IP的方式虽然灵活方便,‌但在某些特定场景下,‌我们可能需要将设备的IP地址固定下来,‌以确保网络连接的稳定性和可访问性。‌本文将详细介绍如何把自…...

Java应用的数据库死锁问题分析与解决

Java应用的数据库死锁问题分析与解决 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 数据库死锁是多线程环境中常见的问题,尤其是在复杂的事务处理和数据访问中。死锁发生时&#x…...

ImportError: cannot import name ‘DglNodePropPredDataset‘ from ‘ogb.nodepropp

ImportError: cannot import name DglNodePropPredDataset from ogb.nodepropp 问题: 在跑深度学习时引入这个模块一直报错不能引入, 但看环境相关的包都安装好了,就是读取不到,时间还白白浪费。 解决办法 from ogb.nodeproppr…...

基于SSM(Spring、SpringMVC、MyBatis)框架的高校信息管理系统

基于SSM(Spring、SpringMVC、MyBatis)框架的高校信息管理系统是一个典型的Java Web应用开发项目。这类系统通常需要处理大量的学生、教师及课程信息,并提供相应的管理功能。下面是一个简化的设计方案,旨在帮助你理解如何构建这样的…...

C++第一节入门

一、历史 C是在C上继承拓展的! java是一家公司(甲骨文)借鉴C生成的! C#是微软借鉴java生成的! 二、命名空间 当我们定义一个名叫rand的变量,但是由于stdlib头文件里面有个函数跟rand重名!因此…...

全能型 AI 的崛起:未来的市场宠儿还是昙花一现?

近日,OpenAI 宣布将在秋季推出代号为“草莓”的新一代 AI 模型。这款 AI 被描述为全能型,从处理复杂的数学问题到应对主观性强的营销策略,它的能力可以覆盖多个领域。听起来像是科技界的“万能钥匙”,无论面对什么问题&#xff0c…...

如何在PPT中插入已经绘制好的excel表格数据

1、新建一个演示文稿 2、点击“插入—对象” 3、点击“由文件创建—浏览” 4、浏览选择电脑上所处理好的excel表格数据 5、这样就可将excel表格数据插入PPT中...

微积分直觉:隐含微分

目录 一、介绍 二、梯子问题 三、结论 四、一个额外的例子 一、介绍 让我们想象一个半径为 5 的圆,以 xy 平面为中心。现在假设我们想在点 (3,4) 处找到一条切线到圆的斜率。 好吧,为了做到这一点,我们必须非常接近圆和…...

Matlab自学笔记三十五:表table数据与外部文件的读入和写出

1.首先新建一个表变量t xingming{zhangsan;lisi;wangwu}; xuehao{1001;1002;1003}; chengji[89 95;90 87;88 84]; ttable(xingming,xuehao,chengji) 2.把表t的数据写出到student.txt writetable(t,student.txt) %使用writetable函数写出数据到txt文件 3.从student.txt文…...

闯关leetcode——3.Longest Substring Without Repeating Characters

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ 内容 Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abc…...

Android Radio2.0——公告注册及监听(三)

前面文章内容介绍了 Radio 相关功能的设置,我们知道可以通过设置来监听不同内容的广播公告,但是在开启对应功能的同时,还需要先注册对应公告监听,这里我们就来看一下广播公告监听的注册流程。 一、注册公告 1、接口封装 private final AtomicBoolean mHasRegisterTa = n…...

【C++】类和对象(三)再探构造函数|static成员函数|友元函数|内部类|匿名对象|对象拷贝时的编译优化

欢迎来到HarperLee的学习笔记! 一、再探构造函数 初始化列表:构造函数初始化的第二种方式(第一种是使用函数体内赋值)。使用方式:以一个冒号:开始,用逗号,分隔数据成员列表,每个成员变量后面跟…...

2024中国算力大会 2024 China Computational Power Conference

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus会议时间:2024年9月27-29日会议地点&#xff1a…...

jEasyUI 扩展行显示细节

jEasyUI 扩展行显示细节 jEasyUI 是一个基于 jQuery 的前端框架,它提供了一系列的 UI 组件,使得 Web 应用的界面开发变得更加简单快捷。在 jEasyUI 的表格(datagrid)组件中,扩展行显示细节是一个常用的功能,它允许用户通过点击一行来展开更多的信息,这样可以有效地展示…...

YOLOv8+Deepsort+PyQt+GUI 语义分割+目标检测+姿态识别 三者合一(集成于一套系统)综合视觉分析系统

综合视觉分析系统 技术栈: YOLOv8:用于目标检测,是一个快速且准确的目标检测框架。DeepSORT:用于目标跟踪,结合了深度学习特征提取和卡尔曼滤波器来预测目标轨迹。GUI:提供一个直观易用的图形用户界面&am…...

机器学习无监督学习

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 无监督学习概述 1.1 定义与特点 无监督学习是一种数据挖掘技术,它允许机器通过观察数据来学习数据的内在结构和模式,而无需预先标注的输出变量。这种方法特别适用于数据探索和发现隐藏在数据…...

windows10-VMware17-Ubuntu-22.04-海康2K摄像头兼容问题,求解(已解决)

文章目录 1.webrtc camera测试2.ffmpeg 测试3.Ubuntu 自带相机4.解决办法 环境:windows10系统下,VMware的Ubuntu-22.04系统 问题:摄像头出现兼容问题,本来是想开发测试的,Ubuntu方便些。买了海康2K的USB摄像头&#xf…...

【系统架构设计师】解释器模式

解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了文法的表示,并定义了一个解释器,该解释器使用该表示来解释语言中的句子。在解释器模式中,通常包括一个抽象语法树(Abstract Synt…...

告别电脑休眠烦恼:MouseJiggler鼠标抖动工具完全指南

告别电脑休眠烦恼:MouseJiggler鼠标抖动工具完全指南 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and forth. 项目…...

Palworld存档迁移终极解决方案:palworld-host-save-fix完整教程

Palworld存档迁移终极解决方案:palworld-host-save-fix完整教程 【免费下载链接】palworld-host-save-fix Fixes the bug which forces a player to create a new character when they already have a save. Useful for migrating maps from co-op to dedicated ser…...

N_m3u8DL-RE深度解析:现代流媒体下载引擎的架构设计与实战应用

N_m3u8DL-RE深度解析:现代流媒体下载引擎的架构设计与实战应用 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8…...

JVM调优实战:从频繁Full GC到毫秒级响应的真实踩坑记录

前言 去年双十一大促前,我们的订单系统突然开始出现间歇性卡顿。起初以为是数据库慢查询,直到看了GC日志才发现问题远比想象中复杂。这篇文章记录的是我们从一个频繁Full GC、停顿时间超过3秒的系统,优化到平均停顿小于50ms的完整过程。 真…...

AI教材生成新突破!低查重AI写教材工具,快速打造专业教材书稿!

写教材的过程,总能遇到“慢节奏”带来的各种困扰。虽然框架和材料已经准备好,但内容撰写却常常陷入瓶颈——一句话反复推敲半小时,总觉得不够完美;章节之间的衔接过渡,总是费尽脑筋也找不到合适的表述,创作…...

HS2-HF Patch:你的HoneySelect2游戏体验终极解决方案

HS2-HF Patch:你的HoneySelect2游戏体验终极解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为HoneySelect2的语言障碍、MOD兼容性问题…...

BiliBiliCCSubtitle架构解析:C++实现的B站CC字幕高效下载与转换技术方案

BiliBiliCCSubtitle架构解析:C实现的B站CC字幕高效下载与转换技术方案 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle BiliBiliCCSubtitle是一款基于C…...

设计模式实战解读(一):单例模式——全局唯一实例的正确打开方式

本文是「设计模式实战解读」系列第一篇。系列文章统一按照 定义 → 痛点场景 → 模式结构 → 核心实现 → 真实应用 → 常见变种 → 优缺点 → 避坑指南 → FAQ 的结构展开,每篇聚焦一个模式讲透。一句话定义 单例模式(Singleton)&#xff1a…...

3分钟掌握ZeroOmega:让浏览器代理切换变得轻松高效

3分钟掌握ZeroOmega:让浏览器代理切换变得轻松高效 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega ZeroOmega 是一款强大的浏览器代理管理工具&…...

免费视频字幕提取终极指南:3分钟快速提取多语言硬字幕

免费视频字幕提取终极指南:3分钟快速提取多语言硬字幕 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容…...