What?Tomcat 竟然也算中间件?

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

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

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

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

中间件分类

=====

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

  1. 终端仿真/屏幕转换

  2. 数据访问中间件(UDA)

  3. 远程过程调用中间件(RPC)

  4. 消息中间件(MOM)

  5. 交易中间件(TPM)

  6. 对象中间件

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

数据库中间件

======

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

前面文章我们提到,如果数据量比较大的话,我们需要对数据进行分库分表,分完之后,原本存在一个数据库中的数据,现在就存在多个数据库中了,那么我们的项目结构可能就是下面这个样子了:

640?wx_fmt=png

我们要在 Java 代码中配置复杂的多数据源,配置读写分离,数据查询的时候还要进行数据的预处理,例如从多个 DB 上加载到的数据要先进行排序、过滤等等操作,这样我们的 Java 代码就参杂了很多业务无关的方法,而且这些参杂进来的代码,大多数都还是重复的。

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

640?wx_fmt=png

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

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

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

结语

==

好了,本文就简单介绍下中间件的基本概念,下文就可以正式开始聊分布式数据库中间件了!

如果小伙伴觉得松哥自己写的技术文章还过得去的话,欢迎积极转发,松哥每隔 15 天会根据微信后台数据,选一个分享转发最多的一位小伙伴,送一本松哥自己的签名书或者 Java 领域的经典书籍,欢迎大家积极参与,下一次开奖时间在下周2_06.png

参考资料:

  1. MyCat 官方文档

  2. 曾宪杰.大型网站系统与Java中间件实践[M].北京:电子工业出版社,2014.

640?wx_fmt=gif

我的第一本书,被选作大学教材了!

北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!

MySQL 只能做小项目?松哥要说几句公道话!

松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸!

结尾

查漏补缺:Java岗 千+道面试题Java基础+全家桶+容器+反射+异常等

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值