本来今天就该讲 MyCat 了,但是我发现还有一个概念值得和大家聊一下,那就是 Java 中间件!

因为 MyCat 是一个分布式数据库中间件,要理解 MyCat ,那你就得先知道到底什么是中间件!

中间件简介
说起中间件,很多人首先想到的就是消息中间件,那么除了消息中间件呢?其实我们日常开发中,接触到的中间件太多了,我们来看维基百科上的一段介绍:

中间件(英语:Middleware),又译中间件、中介层,是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。在现代信息技术应用框架如 Web 服务、面向服务的体系结构等项目中应用比较广泛。如数据库、Apache 的 Tomcat ,IBM 公司的 WebSphere ,BEA 公司的 WebLogic 应用服务器,东方通公司的 Tong 系列中间件,以及 Kingdee 公司的等都属于中间件。

看到这个,你可能会大吃一惊,原来我们不知不觉不知不觉中已经用过这么多中间件了!甚至连 Tomcat 也是一个中间件!

中间件,顾名思义,就是连接在两个软件之间的东西,是软件之间的一个粘合剂,一个胶水一样的东西。它位于操作系统和我们的应用程序之间,可以让开发者方便地处理通信、输入和输出,使开发者能够专注于自己的业务逻辑开发。

这么一说,好像 Tomcat 确实还有点像中间件!位于我们的操作系统和应用程序之间!

中间件分类

中间件有很多,早在 1998 年 IDC 公司就将中间件分成了 6 大类,国内 2005 年之前出版的中间件相关的书上,很多都是按照这 6 大类来分的,分别是:

终端仿真/屏幕转换
数据访问中间件(UDA)
远程过程调用中间件(RPC)
消息中间件(MOM)
交易中间件(TPM)
对象中间件
这里边除了消息中间件和交易中间件大家可能听说过之外,其他的中间件估计都很少听说,这是因为时代在变化,有的中间件慢慢被淘汰了(例如 终端仿真/屏幕转换 中间件),有的则慢慢合并到其他框架中去了(例如 远程过程调用中间件)。

数据库中间件

那么什么是数据库中间件呢?

前面文章我们提到,如果数据量比较大的话,我们需要对数据进行分库分表,分完之后,原本存在一个数据库中的数据,现在就存在多个数据库中了,那么我们的项目结构可能就是下面这个样子了:
我们要在 Java 代码中配置复杂的多数据源,配置读写分离,数据查询的时候还要进行数据的预处理,例如从多个 DB 上加载到的数据要先进行排序、过滤等等操作,这样我们的 Java 代码就参杂了很多业务无关的方法,而且这些参杂进来的代码,大多数都还是重复的。

为了使开发人员,将更多精力放到业务上,我们引入数据库中间件,像下面这样:

这张图非常形象的说明了什么是中间件!一个介于两个应用程序之间的东西。引入 MyCat 中间件之后,我们的应用程序将只需要连接 MyCat 就行了,再由 MyCat 去操作各种不同的 DB,各个分布式数据库的排序、结果集合并、数据过滤等操作都在 MyCat 中完成,这样我们的 Java 应用又可以专注于业务的开发了,那些繁琐的重复的操作,又交给 MyCat 去完成。

如果没有数据库中间件,那么我们的 Java 应用程序将直接面对分片集群,数据源切换、事务处理、数据聚合等等众多问题,这样原本该是专注于业务的 Java 应用程序,将会花大量的工作来处理分片后的问题,而且大部分的代码又都是重复的!

有了数据库中间件,应用只需要集中与业务处理,大量的通用的数据聚合,事务,数据源切换都由中间件来处理,中间件的性能与处理能力将直接决定应用的读写性能,所以在项目中选择一款好的数据库中间件至关重要。

中间件简介(重点:数据库中间件)相关推荐

  1. java数据库中间件实现,分布式数据库中间件DDM的实现原理

    随着数据量不断增大,传统的架构模式难以解决业务量不断增长所带来的问题,特别是在业务成线性.甚至指数级上升的情况.此时我们不得不通过水平扩展,把数据库放到不同服务器上来解决问题,也就是我们说的数据库中间 ...

  2. 数据库中间件1:数据库中间件的几种功能简介

    数据库中间件的几种功能简介 数据库中间件是处于数据库与应用程序之间提供通用.复用服务的系统,减少应用结构的复杂性.如开源的mycat,是由java编写.提供了以下几种功能. 异构数据库的通用:通用的数 ...

  3. oracle数据库中间件mycat,分布式数据库中间件part1-Mycat的入门与搭建

    一.前言 Mycat主要是针对方便架构师进行系统架构架构和DBA管理数据库的一个中间件,提供了多种数据库常见问题的解决方案,但某些技术点与开发工程师也息息相关,这里主要是针对开发工程师相关的技术点-- ...

  4. mysql优化——mycat数据库中间件

    文章目录 目录 文章目录 前言 一.mycat原理 二.mycat完成读写分离 2.1搭建MySQL的主从模式 2.2实现读写分离 三.mycat垂直分库 四.水平分表 五.水平拆分表的连表操作 六. ...

  5. 【总结】MyCat分布式数据库中间件

    1,数据库概述 在互联网时代,海量数据的存储与访问成为系统设计与使用的瓶颈问题,对于海量数据处理,按照使用场景,主要分为两种类型 联机事务处理(OLTP:On-line transaction pro ...

  6. 开源分布式数据库中间件MyCat架构简介(二)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理 一.关于Mycat 二.Mycat 实现原理 三.MyCat 应用场景 四.MyCat 未来展望 五.Mycat 中相关概念 ...

  7. 开源分布式数据库中间件MyCat架构简介(一)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 开源分布式数据库中间件MyCat架构简介--MyCat源起 一.数据库切分概述:OLTP和OLAP 二.关系型数据库和NoSQL数据库 三.关系型数据库和NoSQL数据库的特点及优缺点 1 ...

  8. 数据库中间件MyCat学习总结(1)——MyCat入门简介

    为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代.如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷. MyCat的目标就是:低成本 ...

  9. 轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)

    讲师介绍 张亮 当当架构部总监 负责分布式中间件和私有云平台建设 目前主导开源项目:Elastic-Job及Sharding-JDBC 主题简介: 1.关系型数据库中间件核心功能介绍 2.Shardi ...

最新文章

  1. 存在就不插入_DOM 插入节点和三个Child方法
  2. 读取txt里面的数据进行计算
  3. 分布式图处理引擎Graph Engine 1.0 预览版正式发布
  4. boost::set_symmetric_difference相关的测试程序
  5. 硬件:笔记本电脑7大分类总结,看完你就明白了!
  6. HTML表格、表单,以及新表单属性
  7. python脚本性能分析
  8. Android--Activity中使用Intent传值
  9. oracle 字符串等于,ORACLE in (字符串,字符串,字符串)
  10. syscall 系统调用陷入_MIPS中的异常处理和系统调用【转】-阿里云开发者社区
  11. 【CVPR2022】论文列表与下载——PartThree
  12. Python编程基础 第五章 编程练习 编写程序实现以下功能:根据指定值从一个列表中查找所有匹配元素的位置,要求使用列表中的index方法进行查找。
  13. 电动汽车巨作|新能源汽车简史:电动汽车沉浮录
  14. bom更改编号 sap_SAP ERP系统如何通过LSMW批量更改BOM
  15. Web前端开发的思考与经验----五年工作经验
  16. vb 打开sdf数据_VB中的ComboBox你真的会用吗?
  17. VoLTE信令泛读补充业务4:呼叫保持业务之恢复流程
  18. VB基础版版务处理_20050827
  19. 如何在3dmax中添加声音轨道?
  20. IDM+百度云链下载网盘资源

热门文章

  1. springcloud启动getway报错
  2. c# 更改弹窗MessageBox按钮文字
  3. 恶意程序威胁程度“五芒星”评估法
  4. 关于集成显卡和独立显卡
  5. PHP+644是什么,多多自走棋644什么意思
  6. 跨境电商上市风起,子不语趁势卷入资本“潮流”?
  7. [数据库]MySQL-front6.1连接Mysql8.0失败解决
  8. Eclipse Tomcat在debug状态下修改代码就导致项目重启解决方案
  9. Android中的StrictMode简介
  10. 社交专题---1、如何获得女生的好感