SphereEx苗立尧:云原生架构下的Database Mesh研发实践

什么是Mesh网络结构? 本文是对什么是Mesh技术?网状网络(Mesh)和传统网络结构相比有什么优势?这篇文章的简化和总结,原文说的比较啰嗦,想看的点链接自己看。 1.先来看传统局域网的问题: 局域网的基本结构包括星型结构、环型结构、总线结构、分布式结构、树型结构等。最常见最广泛使用的星型结构是以中央节点作为核心,其他节点都连接至中央节点上,这种结构的成本较高、可靠性较低,但是其延迟小、结构简单便于管理。总线型结... 阅读详情

​嘉宾 | 苗立尧

2022年7月27日,在由开放原子开源基金会主办的“2022开放原子全球开源峰会”上,SphereEx Mesh实验室负责人、云原生技术专家苗立垚带来了《云原生架构下的Database Mesh的研发实践》的主题演讲。

从云原生架构到Service Mesh

从单体到微服务,应用部署的基础设施规模越来越大,服务之间调用关系越来越复杂,对微服务的治理行为集中在流量控制、可观测性、安全访问、配置管理和高可用等方面。

服务网格通过透明代理层作为数据面接管应用流量,并通过控制面管理和下发服务发现、限流熔断、访问控制、安全证书等各种配置,为云原生环境中的微服务实现治理能力。

服务网格最典型的应用场景是Istio,Istio可以解决开发人员和运营商在分布式或微服务架构方面面临的挑战。无论是从零开始构建应用程序,还是将现有应用程序迁移到原生云,Istio都能提供帮助。

当服务治理遇到数据库治理

当服务治理遇到数据库治理,我们可不可以使用Service Mesh治理数据库的流量?

如果把数据库看作是微服务中的一个节点,那么可以通过Service Mesh对数据库访问进行治理。

数据库拥有一些特殊治理属性,比如通信协议、资源管理、基于数据请求的负载均衡、分库分表,还有可观测性、访问控制等。

2018年,SphereEx创始人张亮提出了Database Mesh概念,至今四年的时间,已经有很多厂商与企业客户对Database Mesh做了实践。

上图是三种典型的Database Mesh实现方式,以Sidecar方式实现数据库分片,将数据库流量管理纳入统一的管控,实现一个分布式数据库。

将ShardingSphere当作Sidecar进行部署,不论是ShardingSphere-JDBC或是ShardingSphere-Proxy,都可以实现数据库流量治理与计算能力的增强。

  • 以Sidecar方式实现数据库分片

  • 将数据库流量管理纳入统一的管控

    中等或大规模厂商往往会采用统一的Mesh管控,一般由专门的团队负责所有关于服务方面的治理,数据库也会被列入到治理范畴之中。其中,两套Sidecar受控于同一个服务网格,流量治理、访问控制、可观测性都通过统一的Mesh管控完成。

  • 实现一个分布式数据库

    利用Sidecar做接入,将计算、事务、存储管理都放在单独的节点中,构成分布式数据库。

以上三种实现都聚焦在数据库流量治理的部分,如果将其称为Database Mesh 1.0,那么2.0阶段又应该有哪些特征呢?除了流量之外,数据库治理还应该包括哪些方面?如何通过一个标准框架,提升开发人员的体验?如何减少SRE、DBA的工作负担,还可以为各种场景提供扩展性支持?

基于上述问题的思考,我们构建了Database Mesh 2.0的概念,希望构建高效可编程的数据库治理体验:

  • 进一步减轻开发人员的心智负担,提高开发效率,提供透明和无感的数据库基础设施使用体验;

  • 以可配置、可插拔、可编程的方式,实现一个覆盖数据库流量、运行时资源和稳定性保障等方面的治理框架;

  • 以异构数据源、云原生数据库、分布式数据库等多个数据库领域的典型场景提供标准的使用界面。

Database Mesh 2.0希望提供一种以数据库为中心的治理框架:

  • 数据库是一等公民:一切抽象围绕数据库治理行为进行,比如控制访问、流量治理、可观测性等;

  • 面向工程师体验:对于开发人员,通过便捷易用的数据库声明和定义即可进行开发,无需关心数据库的位置;对于运维和DBA,提供多种数据库治理行为抽象,实现自动化的数据库可靠性治理;

  • 云原生:以开放的生态和实现机制适配不同的云环境,面向云原生构建和实现,而无需担心厂商锁定。

设计一个面向数据库的治理框架

前面已经提到了Database Mesh的概念以及我们想做的事情,那么该如何把它从理论变成实际项目呢?

Kubernetes利用自身强大的扩展能力,如Sidecar模式、Admission Webhook、Custom Resource Definition等,为构建平台上的平台提供了便利。

Pisanix是面向Database Mesh的解决方案,由Go、Rust编写,适配Kubernetes环境,目前支持MySQL协议,有三个主要功能:

  • SQL感知的流量治理:借助SQL解析能力,提供对流量的负载均衡、审计、访问控制、可观测性等功能;

  • 面向运行时的资源可编程:通过多种Linux内核能力,实现流量治理运行时的资源可配置和可编程;

  • 数据库可靠性工程:以工程师为中心、以数据库可靠性为原则设计产品形态,建立数据库上云统一界面。

主要组件有:

  • Pisa-Controller:Pisanix的控制面,Go语言实现,负责配置转换和下发等;

  • Pisa-Proxy:Pisanix的数据面,Rust语言实现,负责流量治理相关能力,以Sidecar形式部署;

  • Pisa-Daemo:Pisanix的数据面,Rust语言实现,负责资源治理相关能力,以Daemon形式部署。 

Pisa-Proxy的整体流程

Pisa-Proxy可以看作是面向数据库流量的负载均衡器,主要工作流程如下:

  • 目前Pisa-Proxy支持MySQL协议,将自己伪装成数据库服务器,应用连接配置只需要修改访问地址即可建连;

  • Pisa-Proxy通过读取应用发来的握手请求和数据包,得到应用希望执行的SQL;

  • 对该SQL进行词法和语法解析后得到对应AST;

  • 基于AST实现高级访问控制和SQL防火墙能力;

  • 访问控制和防火墙通过后,SQL提交执行;

  • SQL执行阶段的指标将采集Prometheus Metrics;

  • 根据负载均衡策略获取执行该语句的后端数据库连接;

  • 如果连接池为空,将根据配置建立和后端数据库的连接;

  • SQL将从该链接发往后端数据库,并读取相应返回结果;

  • SQL执行结果进行组装后返回给业务应用。

MySQL Protocol

Pisa-Proxy作为服务端监听数据库连接请求的流程为:

  • 接收客户端发来的TCP请求并建连;

  • 向客户端发送握手请求,设置服务端标志位;

  • 读取客户端发来的握手响应,验证密码等配置;

  • 向客户端发送握手结果。

Pisa-Proxy作为客户端连接后端数据库的流程为:

  • 和后端数据库建立TCP连接;

  • 接收后端数据库发来的握手请求;

  • 根据收到的握手请求中的标志位组装客户端握手请求,如SSL、AuthSwitch、密码加密等;

  • 与后端数据库交换握手信息;

  • 接受后端数据库发来的握手结果。

SQL Parser

Pisa-Proxy使用Grmtools根据MySQL yacc构建Parser:

  • Parser中通过Scanner读取SQL Token,经过词法分析、语法分析后生成抽象语法树AST;

  • 抽象语法树中可以得到SQL要操作的列和表信息;

  • 基于列、表信息等可以实现细粒度的访问控制、分库分表、加解密等能力。

负载均衡

Pisa-Proxy支持多种负载均衡策略,现已支持:

  • 基础负载均衡(随机、轮询);

  • 读写分离(静态规划和主从感知)。

下一步将支持:

  • 简单分库分表:支持一定计算规模内的分库分表规则;

  • 标签定义规则:通过标签匹配的方式,指定SQL路由到不同的数据源;

  • 未来将提供策略框架,用户可以自定义策略,注入框架后即可使用。

可观测性

Pisa-Proxy支持多种可观测性指标,现有指标为:

  • SQL_PROCESSED_TOTAL;

  • SQL_PROCESSED_DURATION;

  • SQL_UNDER_PROCESSING。

下一步将支持:

  • Latency、Throughput、Error Rate;

  • TopN Queries by Total Time、TopN Queries by Count;

  • SQL Runtime Memory。

别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板 本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。 阅读详情

相关推荐

在unity urp项目中 通过图片创建材质(透明光晕)

unity中通过图片创造材质(urp管道)

m0_49721415的博客 1536

蚂蚁金服 DB Mesh 的探索与实践

蚂蚁金服数据访问层有三个核心组件:数据访问框架 ZDAL、数据访问代理 DBP 和 OceanBase 代理服务器 OBProxy。本篇主要涉及 ZDAL 和 OBProxy 两个组件。...

ServiceMesher 1065

三相直流无刷电机(带HALL传感器)BLDC控制一

本案例选择TIM0的CH0/CH1/CH2三个通道接入三路原始hall输出信号。三路TIM_CHx(48)通过配置存入到NIP寄存器(new input pattern,3 bits)内。未完待续。

m0_69929716的博客 405

【数据库服务网格】浅谈Database Mesh及未来

Database Mesh,这一概念是由开源软件shardingsphere的作者张亮,最早于2018年提出的。其含义是Database Mesh 使用一个啮合层,将散落在系统各个角落中的数据库统一治理起来。通过啮合层集中在一起的应用与数据库之间的交互网络,就像蜘蛛网一样复杂而有序。这一技术关注重点在于如何将分布式的数据访问应用与数据库有机串联起来,它更加关注的是交互,是将杂乱无章的应用与数据库之间的交互有效的梳理。目前这一技术还处于相对早期阶段,只有个别企业有所实践。本文后面将谈谈我对这一技术问题的理解。

DreamSun的博客 1276

GD-Link离线烧录全攻略:从配置到一键下载的保姆级教程

本文详细介绍了GD-Link离线烧录的全流程,从硬件准备到软件配置,再到一键下载的实战技巧。通过保姆级教程,帮助工程师快速掌握国产MCU的离线烧录技术,适用于产线批量烧录和现场设备维护等场景,显著提升工作效率。

ww90123的博客 649

电磁阀的符号解读

先数方框数量定“几位”(工作位置数 );数接口数量(P、A、R等 )定“几通”;看箭头、截断符号,结合常态位(弹簧侧/中间位 ),分析通电/断电时的通路切换;字母(P、A、R )、线圈(单/双电控 )、弹簧(复位 )辅助确认功能(如NO/NC对应常态通断 )。不同厂家符号细节(如编码、线圈画法 )有差异,遇到陌生符号,建议结合产品手册、品牌规范核对,就能精准读懂电磁阀的“语言”啦~

创新改变世界! 6882

蚂蚁金服 Service Mesh 落地实践与挑战 | GIAC 实录

本文整理自GIAC(GLOBAL INTERNET ARCHITECTURE CONFERENCE)全球互联网架构大会,蚂蚁金服平台数据技术事业群技术专家石建伟(花名:...

金融级分布式架构 3047

RK3568平台(音频篇)麦克风PDM接口录音

PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的已经是幅值分量了。

weixin_49303682的博客 5194

数据库治理的云原生之道 —— Database Mesh 2.0

2018 年 3 月,彼时的 ShardingSphere 刚从原来的 ShardingSphere-JDBC 演化出来可以独立部署的 ShardingSphere-Proxy,它们都采用 Java 构建实现,分别代表了 SDK 模式和 Proxy 模式,提供了相同的标准化数据分片、分布式事务等功能。但无论使用哪种方式,都有其各自的优缺点。项目创始人张亮就在设想是否有一种...

ShardingSphere官微 796

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1612

【UVM实战】第七章:UVM中的寄存器模型(1)寄存器模型简介

寄存器模型简介~

悟已往之不谏 知来者之可追 2070

蚂蚁云原生应用运行时的探索和实践 - ArchSummit 上海

Mesh 模式的引入是实现应用云原生的关键路径,蚂蚁集团已在内部实现大规模落地。随着 Message、DB、Cache Mesh 等更多的中间件能力的下沉,从 Mesh 演进而来的应用运行...

金融级分布式架构 397

大疆司空 2 私有化部署:FH2、Terra、4G 三大服务区别详解

摘要: 司空2私有版包含三大模块:FH2(核心平台,必选)、Terra(建模算力,需NVIDIA显卡)、4G(内网图传)。FH2是基础,支持设备管理与任务调度;Terra适用于测绘建模场景,依赖GPU算力;4G模块保障复杂环境下的图传稳定性,适合纯内网部署。选择逻辑:先部署FH2,再按需添加Terra(需显卡)或4G(需内网支持),避免资源浪费。

2501_93651177的博客 576

ShardingSphere 简介(一)

shardingphere 简介(一)

u012736401的专栏 3658

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

数据库分库分表中间件选择

以Sharding-Proxy为例,中间层将自身定义为透明的数据库代理,它提供了一种数据库服务器,该服务器封装了数据库二进制协议以支持异构语言。对DBA友好的是,现在提供的MySQL版本可以使用与MySQL协议兼容的任何类型的终端(例如MySQL Command Client,MySQL Workbench等)。它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容JDBC和各种 ORM 框架。4、性能高,JDBC 直连数据库,无需二次转发。

xiaolyuh的专栏 2632

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ShardingSphere + Database Mesh | 爱奇艺的云上数据治理实践

今年 5 月,SphereEx 正式对外提出了 Database Mesh 2.0 理念。Database Mesh,其不是静态的定义,而是一个在不断进化的动态概念。 Database Mesh 始终关注对数据库流量的治理,基于数据库协议感知能力,提供数据分片、负载均衡、可观测性、审计等能力,这些能力已经解决了数据库治理中属于流量治理的部分问题。此外 Database Mesh 也关注数据库可靠性...

ShardingSphere官微 432

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Service Mesh是大方向,那Database Mesh呢?

在微服务和云原生大潮的卷席之下,服务化一直以来是人们关注的重点。但服务化之后,真正绕不开的数据访问却鲜有论道。尽管目前的关系型数据库远达不到云原生的要求,并且对分布式的不友好在长期以来也饱受诟病,但不可否置的是,关系型数据库至今依然扮演着极其重要的角色。\u0026#xD;\u0026#xD;从其本身以及周边生态圈的成熟度、数据查询的灵活度、开发工程师以及 DBA 对其的掌控程度以及招聘到适合人员...

cpongo011702 556

ShardingSphere 的云原生进化:从数据库中间件到 Database Mesh

本文探讨了ShardingSphere在云原生环境中的架构演进,从传统数据库中间件转型为Database Mesh的实践。通过Sidecar模式实现零侵入接入、性能优化和分布式治理,显著提升数据库连接管理和配置动态更新的效率,为云原生应用提供高效的数据层解决方案。

docker7nomad的博客 732

谁说数据库不适合Docker?解读MySQL DB Mesh的创造性实践

以 Docker 为代表的容器技术正在以一种不可阻挡的趋势席卷全球,但真正的落地过程依然十分坎坷。6 月 20 日北京,在 2019 企业容器创新大会上,业内首家覆盖业务全流程、运营全体系的移动信贷整体技术服务商飞贷金融科技的副总裁陈定玮分享了飞贷的数据库生产容器化及 Istio 应用的经验。基于飞贷金融科技容器化道路的实践与经验,InfoQ 记者也专访了陈定玮,并将其分享和思考整理如下。 ...

我是月亮呀的博客 892

无线Mesh网络简介

无线Mesh网络是一种近年来得到快速发展的无线宽带接入网络技术,其不需要基站等事先建设的基础设施,而是利用分布式思想构建动态自组织的无线多跳网络,让处于该网络覆盖范围内的用户在任何时间、任何地点都可以对互联网进行高速无线访问。无线Ad-hoc网络无线Mesh网络由无线Ad-hoc网络发展而来。Ad-hoc网是一种多跳的、无中心的、自组织无线网络,又称为多跳网(Multi-hop Network)、无

u012707739的博客 2万+

Mesh技术的基本概念

蓝牙Mesh技术的基本概念 蓝牙技术作为一种通用通信技术,最主要的功能就是取代了数据电缆的传输,用于便携式设备及其应用。本文介绍蓝牙无线技术的不断革新与进步。 2004年,蓝牙技术联盟推出了蓝牙2.0+EDR,使得蓝牙传输速率达到了2.1Mbps(262.5KB/s); 2009年发布了蓝牙3.0+HS(Hight Speed),将数据传输速率提高到了24Mbps(3MB/s)的理论值; ...

CAESAR的专栏 5814

开源二三事|ShardingSphere 与 Database Mesh 之间不得不说的那些事

背景前段时间,以 Apache ShardingSphere 核心团队组建的创业公司 SphereEx,正式对外推出了 Database Mesh 2.0 概念以及与之相配套的开源产品 Pisanix,这引发了社区间对于 ShardingSphere 和 Database Mesh 的不少争论与思考。许多用户都很清楚,SphereEx 是由 Apache Sharding...

ShardingSphere官微 400

Sharding-Sphere 3.X今日瞩目登场&如约而至!

点击上方蓝字关注我们码农少闲月,五月人倍忙!Sharding-Sphere在经历公投改名、新官网上线、版权转移等一系列重大变革后,终于迎来了它的3.X新时代!今日,Sha...

ShardingSphere官微 667

基于 Data Mesh 构建分布式领域驱动架构的最佳实践

虽然遵守 GDPR 和 BCBS 239 等法规可能是一项挑战,但它们只不过是现代数据平台的最佳实践指南。一个有远见的组织应该有一个数据基础结构(data fabric ),以解决常见的非功能需求,同时还要有一个运营模式,以识别数据的战略价值。本文介绍 Saxo 银行如何借助数据网格架构来实现这一愿景。在数据平台团队的推动下,我们彻底地重新思考了组织内的数据使用情况。“所有数据归人民”,这在企业里是一个非常有吸引力的主张。然而,对于许多组织来说,快速解决集成问题,将数据提供给需要的人来解锁洞察和创新还是一个

caoyongsheng的博客 540
上一篇: 有人开源全凭“为爱发电”,有人却用开源“搞到了钱”
下一篇: 工信部电子五所张志强:中国数据库行业发展趋势分析
开源头条
博客等级 码龄13年 1475粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值