当前位置:首页 > 经验 >

什么是中间件它有什么作用(中间件的定义和特点)

来源:原点资讯(www.yd166.com)时间:2024-03-31 17:40:56作者:YD166手机阅读>>

什么是中间件它有什么作用,中间件的定义和特点(1)

大家好,我是mikechen。

Java面试经常问到数据库中间件,比如:数据库中间件有哪些?下面我就重点来详解6大数据库中间件@mikechen

本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。

什么是中间件它有什么作用,中间件的定义和特点(2)

数据库中间件定义

数据库中间件作为应用程序和数据库之间的代理,充当一个缓冲层,使得应用程序可以通过中间件来访问数据库,而不必直接与数据库通信。

为什么需要数据库中间件

传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。

但是随着目前数据量不断的增大我们就遇到了问题:

  • 单个表数据量太大、单个库数据量太大;
  • 单台数据量服务器压力很大;
  • 读写速度遇到瓶颈;

当面临以上问题时,我们会想到不断增加硬件性能,这种方式只能暂时解决问题,当业务量不断增长时还是解决不了问题。

特别是淘宝,facebook,youtube这种业务成线性,甚至指数级上升的情况。

此时除了增加应用服务器外,还会涉及到数据库的垂直以及分库分表,数据库读写分离等,这个时候就需要用到数据库中间件。

数据库中间件作用

数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表。

数据库中间件分类

常见的数据库中间件如下,主要包含如下6类数据库中间件:

1.MyCat

MyCat是开源社区在阿里cobar基础上进行二次开发,解决了cobar存在的问题,并且加入了许多新的功能在其中。

MyCat是基于MySQL协议开发的,可以将多个MySQL数据库服务器组合成一个逻辑数据库,从而实现数据分片、负载均衡、读写分离、故障切换等功能。

以下是MyCat的一些主要特点:

  1. 数据分片:MyCat支持将数据分成多个分片,并将它们分布在多个MySQL数据库服务器上。
  2. 读写分离:MyCat可以将读请求路由到只读节点,从而减轻主节点的负载。
  3. 负载均衡:MyCat可以将查询和更新请求分配到不同的MySQL服务器上,以达到负载均衡的目的。
  4. 自动故障转移:当一个MySQL服务器故障时,MyCat可以自动将连接转移到另一个可用的MySQL服务器上,从而保持服务的可用性。
  5. 支持SQL解析和路由:MyCat可以解析和优化SQL语句,从而提高查询性能。
2.MySQL-Proxy

MySQL-Proxy是一种开源的MySQL代理服务器,可以用于在客户端和MySQL服务器之间进行拦截和操作。

实现如下功能:

  1. 负载均衡:可以将MySQL连接分配到多个MySQL服务器中,以达到负载均衡的目的。
  2. 高可用性:当一个MySQL服务器故障时,可以自动将连接切换到另一个可用的MySQL服务器上,从而保持服务的可用性。
  3. 数据过滤和重写:可以动态地修改MySQL请求和响应,例如将SQL语句中的某些关键字替换为其他值,或者过滤掉某些敏感数据。
  4. 监控和日志记录:可以记录MySQL的请求和响应,并提供实时的统计信息和日志记录功能。
3.DRDS

阿里DRDS是一种云原生的关系型数据库中间件,由阿里巴巴集团开发和维护。

DRDS是阿里巴巴致力于解决单机数据库服务瓶颈问题,而自主研发推出的分布式数据库产品。

DRDS的前身是淘宝根据自己的业务特点开发了TDDL,全称是Taobao Distributed Data Layer 框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制。

以下是DRDS的一些主要特点:

  • 数据分片:DRDS支持将数据分成多个分片,并将它们分布在多个MySQL数据库服务器上
  • DRDS 高度兼容 MySQL 协议和语法;
  • 支持自动化水平拆分、在线平滑扩缩容、弹性扩展;
  • 透明读写分离:DRDS可以将读请求路由到只读节点,从而减轻主节点的负载;
  • 具备数据库全生命周期运维管控能力;
4.Atlas

Atlas是360团队基于mysql proxy 把lua用C改写的版本,是一个基于MySQL协议的数据中间层项目。

Atlas它能够对数据库进行读写分离、分库分表配置,配合MHA架构进行高可用环境搭建有较好的效果。

5.Zebra

Zebra 是美团点评开发的数据库访问层中间件,它的设计目标是提供高性能、高可用性和易于管理的关系型数据库解决方案。

具有以下的功能点:

  • 配置集中管理,动态刷新;
  • 支持读写分离、分库分表;
  • 丰富的监控信息在CAT上展现;
  • 异步化数据库请求,多数据源支持;
6.ShardingSphere

Apache ShardingSphere 是一套开源的分布式数据库中间件,它由 JDBC、Proxy 和 Sidecar这 3 款相互独立,却又能够混合部署配合使用的产品组成。

分库分表是所有ShardingSphere产品中最为经典、成熟,也是使用最多的功能。

ShardingSphere它支持多种数据库,包括MySQL、Oracle、DB2、PostgreSQL和SQLServer等。

以上就是数据库中间件的详解,希望对你掌握数据库中间件有所帮助。

本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。

什么是中间件它有什么作用,中间件的定义和特点(3)

,

栏目热文

中间件是指(中间件怎么理解)

中间件是指(中间件怎么理解)

3月13日,中间件产品与服务提供商中创股份(688695.SH)成功登陆上交所科创板。中间件与操作系统、数据库并称为三大...

2024-03-31 17:13:47查看全文 >>

中间件的功能是什么(中间件的定义和特点)

中间件的功能是什么(中间件的定义和特点)

大家好,我是mikechen。大数据量系统都会涉及到数据库中间件,比如大家熟悉的分库分表等会涉及数据库中间件,下面我重点...

2024-03-31 17:28:05查看全文 >>

中间件是干啥用的(中间件是干什么用的)

中间件是干啥用的(中间件是干什么用的)

1. 什么是中间件Express中间件是在请求和响应之间执行的函数,它可以访问请求对象(req)、响应对象(res)和应...

2024-03-31 17:28:13查看全文 >>

中间件有哪些(中间件有哪些厂家)

中间件有哪些(中间件有哪些厂家)

Java面试经常会被问到消息中间件有哪些?下面我就来详解常见的消息中间件@mikechen本篇已经收纳于mikechen...

2024-03-31 17:37:46查看全文 >>

十大中间件产品(中间件厂商排名)

十大中间件产品(中间件厂商排名)

信创中间件是信息技术领域的关键组成部分,特别是在推动国产化软件发展方面起到了重要作用。以下是被认为是当前信创领域中的一些...

2024-03-31 17:07:38查看全文 >>

中间件的作用示意图(中间件的功能有哪些)

中间件的作用示意图(中间件的功能有哪些)

消息中间件在分布式以及高并发架构都是重要的内容,下面我就重点来详解消息中间件@mikechen消息中间件定义消息中间件(...

2024-03-31 17:09:12查看全文 >>

中间件包括哪些内容(什么情况下需要用到中间件)

中间件包括哪些内容(什么情况下需要用到中间件)

在深耕中间件行业二十余年后,3月13日,山东中创软件商用中间件股份有限公司(以下简称中创股份)成功在上交所科创板上市。通...

2024-03-31 17:37:33查看全文 >>

中间件有哪些类型(中间件举例)

中间件有哪些类型(中间件举例)

中间件是一种位于操作系统,网络和数据库智商的应用与分布式系统的基础软件,提供系统软件与应用软件连接的软件。它可以从一个软...

2024-03-31 17:42:06查看全文 >>

什么情况下要用中间件(中间件的优势和缺点)

什么情况下要用中间件(中间件的优势和缺点)

掌握 GoLang Fiber 中的路由和中间件艺术,以进行高效的 Web 开发在网络开发领域中,创建一个有效地路由和管...

2024-03-31 17:01:45查看全文 >>

正式公函范本(公函模板怎么写)

正式公函范本(公函模板怎么写)

公函的定义公函,正式的或官方的书信。公函是党政机关、人民团体、企事业单位间商洽和联系工作时使用的一种文体。公函的使用范围...

2024-03-31 17:39:28查看全文 >>

文档排行