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

news2024/11/23 19:32:48

文章目录

  • 前言
  • 1. 服务网格:Service Mesh
    • 服务网格优势
  • 2. 数据库服务网格:Database Mesh
  • 3. 数据服务网格:Data Mesh

前言

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

1. 服务网格:Service Mesh

在我们开始讨论Database Mesh之前,让我们先来看看更为大家所熟知的Service Mesh。前者也正是从这一概念衍生而的。所谓Service Mesh,即服务网格,它是一个专有的基础设施层。其基本的理念是在服务间插入一个代理组成的网络来实现对网络层的抽象。进而可以使得微服务架构内部的服务间通信更加可靠、快捷和安全;帮助开发者解决微服务间的交互挑战。

下面以一个比较火的服务网格的开源项目-Istio,看看Service Mesh的实现机理。Istio是一个由谷歌、IBM与Lyft共同开发的开源项目,旨在提供一种统一的、安全的、可管理、可监控的微服务连接方式。下图是Istio的架构图:
在这里插入图片描述

从大的方面来看,整个架构分为两个平面:数据平面、控制平面。其中上半部分的数据平台,主要由Proxy组件构成;下半部分为控制平面,主要由Mixer、Pilot、Galley、Citadel组件组成。前者可高效转发流量,实现服务发现、负载均衡、安全传输、多协议支持、断路器、健康检查、分流路由、故障注入、系统度量等能力,后者则提供数据全局视角的配置管理能力。将上述组件抽象,可得到Service Mesh的典型结构:
在这里插入图片描述

上面的核心为由Sidecar代理(后面会谈到)形成一个网状的数据平面,通过该数据平面处理和观察所有服务间的流量。数据平面扮演了一个用来建立、保护和控制通过网格的流量的角色。而对应的负责数据平面如何执行的管理组件称为控制平面。控制平面是服务网格的大脑,并为网格使用人员提供公开API,以便较容易地操纵网络行为。业务应用系统,只需要跟部署在同一机器或Pod内的SideCar代理互相访问,即可实现上面微服务环境所依赖的诸多治理服务。

服务网格优势

那么为什么服务网格技术有利于解决微服务治理上面的多种问题呢?

在这里插入图片描述

之前对于微服务的治理能力往往都是构建在应用程序本身内(如左图),这里面包含了流量管理、熔断、重试、客户端负载均衡、安全以及可观测性等等。随着我们对治理功能的要求不断提高,相应这部分代码逻辑也需要不断增强。但这里就面临一个问题,即即使我的应用逻辑没有任何改变,为了配合服务治理能力的需求还是需要不断改变整个应用。伴随着应用的增长、业务的复杂,上述服务治理功能也将变得很复杂。这是一个朴素的想法就是解耦,即将服务治理能力与应用程序间解耦合。通过上图右侧的方式,将服务治理能力SideCar化。这些SideCar能力不需要依赖于某种特定技术框架,可支持多种编程语言。原本需要在代码库中实现的服务治理功能被抽象化为一个个通用组件,并被逐渐地下沉到代理中。这些服务治理能力的标准化、统一化,可以解决复杂系统微服务实现中面临的差异大、缺少共性的问题,可以很好地支持不同的编程语言、不同的框架。通过把应用服务通信能力抽象下沉到基础设施, 使得开发人员可以更加聚焦于业务应用本身开发,而让基础设施来提供这些通用的能力。

2. 数据库服务网格:Database Mesh

与Service Mesh类似,微服务需要治理,数据库应用同样需要。其基本治理能力所包含的数据库发现、访问路由、数据分片、读写分离、负载均衡、熔断、链路采集、可观测性等等。为达到上述能力,一般都是通过何种方式实现的?常见的有两种:Client模式和Proxy模式。前者是一种客户端模式,其优点是无中心化架构,缺点是无法支持异构语言。后者是一种能代理端模式,优点是异构语言的支持,缺点依然是中心化架构。显然上述两种模式,都存在一定的问题,进而对应的SideCar模式也就顺理成章。下图是摘自ShardingSphere对database Mesh实现的一个构想。
在这里插入图片描述

业务代码通过Service Mesh的SideCar访问Database Mesh的SideCar,进而访问数据库集群。而对于管理端,则仍可以使用Proxy模式,通过伪装数据库的方式直接通过访问。那么针对这三种模式,ShardingSphere也做了对比,由下图可见SideCar方式在多方面占优。

在这里插入图片描述

此外,作为云原生部署实践,Sidecar 是随着宿主机的生命周期创建和消亡的,是完全动态和弹性的存在。伴随着应用的弹性能力同步提供对应的弹性能力。相信随着云原生以及 Kubernetes 的发展,让 Sidecar 模式更为成熟。其带来的收益,从执行效率、资源成本、管理易用、性能提升等方面均能获益。也期望通过统一的数据库服务网格,让业务都使用标准的技术组件,降低学习以及维护成本,仅专注在业务开发及创新。

3. 数据服务网格:Data Mesh

同样的道理,如果在对数据库服务治理能力上,可通过SideCar方式来满足未来需求。那推而广之,是否可将对数据服务治理能力,也通过同样的方式解决呢?从基本的元数据获取、数据质量保证、数据存储与加工、基础架构与建模等等。下图是摘自国际数据管理协会DAMA2最新数据管理总结。下述所列功能域,都是可能潜在的治理方向。如果说Service Mesh的核心是”流量”、Database Mesh的核心是”连接”,那么如果说Data Mesh可抽象出数据服务的基本要素是否也可行呢?例如统一的数据访问语言SQL…

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

又双叒叕!五大数据库全方位注释,抗性宏基因组分析项目再次升级!

基于宏基因组测序的抗性基因分析是目前ARGs分析的重要手段,五大数据库全面注释分析,一网打尽ARGs、MRGs、BRGs、MGEs、致病菌注释。 项目报告不仅包含抗性基因的多样性、丰度和分布模式,还能获得包括抗性组变化驱动因素、指示基因识别、抗性组…

Java智慧工地系统源码(微服务+Java+Springcloud+Vue+MySQL)

智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三…

SpringCloud最新最全面试题

目录 一、简单说一说什么是微服务? 二、微服务有哪些优缺点? 三、微服务、分布式、集群的区别? 四、什么是Eureka? 五、Eureka有那两大组件? 六、actuator是什么? 七、Discovery是什么? …

4.1 C++ Boost 字符串处理库

Boost 库是一个由C/C语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。…

docker 搭建 ElasticSearch

1、拉取镜像 docker pull elasticsearch:8.8.12、在机器本地新建文件夹并赋予权限 mkdir -p /home/elasticsearch/configmkdir -p /home/elasticsearch/datamkdir -p /home/elasticsearch/pluginschmod 777 /home/elasticsearch/configchmod 777 /home/elasticsearch/datachm…

全开放式耳机什么品牌好?全开放式耳机推荐

​在音乐的世界中,开放式耳机提供了更真实、更通透的音质体验,开放式耳机采用不入耳设计,佩戴更为稳固舒适,还允许外界的声音自由地流入,使你在享受音乐的同时,也能保持对周围环境的感知,户外运…

WebDriver API及对象识别技术

html页面的iframe的切换 定位到客户管理 新增客户 会无法定位到新增客户,因为在另外一个iframe框架之中。 iframe是html中的框架标签,表示文档中可以嵌入文档,或者说是浮动的框架。在selenium中iframe同样如此,如果驱动器对象处于当前iframe框架中,此时驱动器对象是…

商业计划书的写作

商业计划书是一份描述企业发展的文件,是企业经营者素质的体现,是企业拥有良好融资能力、实现跨越式发展的重要条件之一。一份好的商业计划书,是建立投资者、合作者、消费者信心的重要依据,获得、投资、合作的关键。 企业商业计划…

❤ Vue2完整项目进一步配置配置(二)

❤ Vue2完整项目进一步配置配置(二) (1)配置自定义端口号:9528 port: 9528, // 端口号autoOpenBrowser: true, //是否自动打开浏览器

《知识图谱互联互通白皮书》正式发布,合合信息携手电子标准院共同推动技术规范化发展

知识图谱是将各种数据和信息进行结构化处理后形成的一种“语义知识库”,也是人工智能的重要组成部分。 为助力知识图谱系统间的互联互通,推进知识要素的规范、有序和可靠流动,近期,中国电子技术标准化研究院依托知识图谱产业推进…

适用于Android™的Windows子系统Windows Subsystem fo r Android™Win11安装指南

文章目录 一、需求二、Windows Subsystem for Android™Win11简介三、安装教程1.查看BIOS是否开启虚拟化2.安装Hyper-V、虚拟机平台3.启动虚拟机管理程序(可选)4.安装适用于Android™的Windows子系统5.相关设置 一、需求 需要在电脑上进行网课APP(无客户端只有App&…

零基础学Python,哪些入门知识必学?学习步骤是什么?

众所周知,Python以优雅、简洁著称,入行门槛低,可以从事Linux运维、Python Web网站工程师、Python自动化测试、数据分析、人工智能等职位,薪资待遇呈上涨趋势。很多人都想学习Python,那么零基础学Python应该学习哪些入门…

批次效应分析

写在前面 批次效应分析,在医学芯片研究中,使用不同芯片进行分析时常用的数据处理方式,但是很多同学处理后的数据,存在不满意的情况。因此,到处咨询,各种查教程。今天,使用简短的时间分享该数据处理教程。 最终分析结果 欢迎投稿 小杜一直在分享自己平时学习笔记,因此…

HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况

文章目录 前言一、认识响应状态码1. 什么是HTTP响应状态码2. Http响应状态码的作用3. 优化和调试HTTP请求的建议 二、1xx 信息响应1. 认识http信息响应2. 常见的信息响应状态码 三、2xx 成功响应1. 认识HTTP成功响应2. 常见的成功响应状态码 四、3xx 重定向1. 认识http重定向2.…

Cat(7):CAT监控界面介绍

1 DashBoard DashBoard仪表盘显示了每分钟出现错误的系统及其错误的次数和时间。 点击右上角的时间按钮可以切换不同的展示时间,-7d代表7天前,-1h代表1小时前,now定位到当前时间 上方的时间轴按照分钟进行排布,点击之后可以看到该…

elementui表格嵌套上传文件直传到oss服务器(表单上传)

提示:记录项目中遇到的问题,仅供参考 文章目录 前言一、vue代码二、js接口请求代码 前言 项目需求是在表格中嵌套一个上传图片的功能,并且回显选择的图片和已上传的图片,再通过点击操作列中上传按钮才开始上传,使用的…

蓝牙资讯|安卓将加强耳机音量监控,耳机查找功能将更加普遍

为了保护用户的听力健康,Android 14 将增加一项新功能,当用户使用耳机听音乐时,如果音量过高或持续时间过长,系统会发出警告,并自动降低音量。这个功能叫做“耳机音量过高警告(headphone loud sound alert&…

蓝奥声智能工业安全用电监测与智慧能源解决方案

能源管理变得越来越重要。如今,能源成本已成为国内预算的核心因素,因此用电监控对大多数现代企业来说都很重要。许多企业在日常能源消耗监控中面临着一些挑战,因为它们的规模庞大,基础设施多样化,灵活性低,…

每天一道leetcode:剑指 Offer 55 - I. 二叉树的深度(适合初学者树图论层次遍历)

今日份题目: 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 示例 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20…

深入探索智能未来:文本生成与问答模型的创新融合

深入探索智能未来:文本生成与问答模型的创新融合 1.Filling Model with T5 1.1背景介绍 该项目用于将句子中 [MASK] 位置通过生成模型还原,以实现 UIE 信息抽取中 Mask Then Filling 数据增强策略。 Mask Then Fill 是一种基于生成模型的信息抽取数据…