《SpringBoot 中间件设计和开发》

第一章: 什么是中间件

1、前言

在互联网应用开发初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示,都是在一个系统中开发完成的,最终只是把系统和数据库部署到同一台服务器上。 

但是随着互联网应用的发展,业务体量逐渐增大,那么庙的胸痛搭建就很难支撑现有的业务体量。因此开始陆续出现应用和数据库分离,Nginx 反向代理、缓存组件、前后端分离、分组部署、RPC分布式应用、网关服务、监控系统等。

在这些系统的的架构的演进过程中,不断的出现各类支撑服务建设升级的系统和中间件。在中间件这一层的建设,基本是来自于非业务逻辑的通用性核心功能的抽离出来的,而逐渐形成了各类中间件。

中间件: 是介于操作系统和应用软件之间,为应用软件日工服务的软件,有消息中间件,通信中间件,应用服务器。由于介于两者之间,所以称为中间件。 

 

2. 中间间的起源

最早具有中间件技术思想及功能实现的软件是IBM 的CICS,但由于CICS不是分布式环境下的产品,因此大家一把把Tuxedo 作为第一个严格意义上的中间件。

Tuxedo 是1984年在当时属于AT&T 的贝尔实验室开发完成,但由于分布式处理当时没有商业应用上获得像今天一样的成功,Tuxedo 在很长的一段时期里只是实验室的产品,后来被Novell 收购,在果果Novelll 并不成功的商业推广后,1995年被现在的BEA 公司收购

尽管中间件的概念很早就已经产生,但中间件技术的广泛的应用却是在最近10年知州。EBA 公司1995成立后收购Tuxedo 才成为一个真正的中间件厂商,EBA的中间件MQSeries 也是10实际90年代的产品,其他许多中间件产品都是最近几年才成熟起来的。 

3. 为什么使用中间件

使用中间件,来自于中间件本身的价值能力,具体的说中间件屏蔽了底层操作系统的复杂性,让开发工程师可以把更多的专注力放在业务系统的逻辑上,让开发人员面对的是一个简单,单一的开发环境,减少程序因底层差异而导致的复杂性。 

中间件最终带给系统的交付质量和交付能力的提升。 提的存在不止是让开发简单,周期断,更主要的减少了系统上线后的不稳定和运维成本及管理的工作量,同时减少服务资源的投入。 

4. 中间件的分类

其实中间件的分类有很多种,这可能也是让大家在平常开发种迷惑,到底那些是中间件,一些基本的中间件很好定位,比如MQ,RPC,Dapper 等等,但又些软件服务虽然不是作为中间库开发出来的,但他们如果符合中间按件的定义,也可以归纳到中间件的范畴里。

按照IDC 的分贝方法中,中间件可以分为六类: 

1. 终端仿真/屏幕转换的中间件

此类中间件用以实现客户机端的图形用户接口于现有的服务端字符接口方式的用用程序之间的操作,比如: 中继器,IO 办卡,PLC 等作为控制层进行高级语言于展示成交互

2. 数据访问中间件

JDBC ODBC ,此类中间件是哦那个与应用程序和各类数据元的通信操作。 以便于直接访问和更新基于服务器的数据源,数据源可以是关系型,非关系型以及对象型,大概你可以想到的是Mysal,Oracle,redis,Elasticsearch 等,使用次类中间件可以是更好的简化应用系统的开发。 

3. 远程调用中间件

RPC 是最在的分布式应用采用的一种同步请求于应答协议,PRC 扩展了过程开发中的功能调用和结果返回机制,是的它可以使用于远程环境的调用和分布式的部署。 

4. 消息中间件

kafa,ActiveMq,RabbitMQ,现在的分布系统构建中都离不开Rpc 与MQ.系统架构设计中使用消息中间件把应用扩展到不同的操作系统和不同的网络环境中,基于消息时间驱动机制处理业务的解耦和消峰。 

5. 交易中间件

此类中间件是一种针对练机交易系统而设计的中间件,其实很多业务发起的中间件都是属于此类,交易中间件,它相当于一个程序模块,使用它可以大大减少开发一个交易系统所需的编程工作量。 

6. 对象中间件

对于这样的中间件,分类也可以理解为从业务系统中抽离出具有共用行的功能和核心逻辑,面向对象的技术基于Java 语言的做大目标,通过封装,继承,堕胎,提供良好的对象重用性。 

3. 为什么要懂中间件开发

如果说编程知识单纯的承接产品需求开发系统功能,那么基本可以把程序开发过程简化为按照需求PRD,定义属性,创建方法,调用展示,这三个步骤。

尤其在一些大公司,会有易用的、完善的、标准的架构体系和运维服务。例如: RPC、MQ、Redis集群、分布式任务,配置中心,分布分表组件,网关等搭配出来的系统架构,也因此让程序员做到只关心业务功能开发。 

但让程序员值关心业务开发,又城市的系统架构,又标准的开发流程,有通用的功能设计,对于管对效能提升来所是非常好的事情,可一部分程序员正因为有这样的耗时,日复一日的岁月做着同样的事情,最后成为工具人。 

如果是框架和中间件的存在,为了让程序员只关系业务,那为什么你面试的时候,会被问道核心的组件的设计原理? 在这个年代,别放弃学习,以及深度学习是你几乎唯一的生存途径。所以你要多取拓展学习一新更核心的技术。 让自己成为最贵的程序员。 

 

posted @   dousil  阅读(176)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示