什么是中间件,中间件详解
维基百科这样定义:中间件是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。
通过定义我们可以总结判断出:
中间件是软件
系统软件和应用软件之间、软件各部件之间;管理客户机与系统软件之间的计算资源和网络通信。
中间件为应用软件服务,应用软件为最终用户服务,最终用户并不直接使用中间件。
图1 中间件概念模型
中间件的分类
基于中间件的功能特点、自身定位决定了其分类的多样性。具体的,中间件可以分为基础中间件、集成中间件和行业领域应用平台。
类型名称 | 分类描述 |
基础 中间件 | 包括交易中间件、消息中间件、应用服务器中间件等,主要用于节点之间、应用于服务器之间的互联互通、交易请求的搞笑处理,Web应用的构建等,基础中间件产品是构建分布式应用的基础。 |
集成 中间件 | 主要用于异构系统(如不同的数据库系统、业务应用系统等)之间进行资源整合,以实现互联互通、数据共享、业务流程系统统一等功能,并构建灵活可扩展的分布式企业应用。 |
行业领域应用平台 | 为了满足特定的行业、企业需求,易于快速、方便地的构建应用,而在原有基础中间件、集成中间等的基础之上所开发的中间件,根据所提供的服务不同,行业领域应用平台包括文件交换管理、数据共享交换、支持云计算和物联网的平台中间件等。 |
常用基础中间件
Kafka:Kafka属于消息中间件,Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。
RabbitMQ:RabbitMQ属于消息中间件,它实现了高级消息队列协议(AMQP)的开源消息代理软件。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
Redis:属于数据库中间件、远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Nginx:属于web服务器中间件,是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
Tomcat:属于web服务器中间件,它是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
IIS:IIS属于web服务器中间件,Internet Information Services英文全称的缩写,是一个World Wide Web server服务。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
SchedulerX:SchedulerX属于分布式任务调度中间件,SchedulerX 2.0是阿里巴巴基于Akka架构自研的新一代分布式任务调度平台。兼容开源XXL-JOB、ElasticJob,支持Cron定时、一次性任务、任务编排、分布式执行批量任务等功能,具备高可用、可视化、可运维、低延时等能力。
Driud:Druid属于实时分析数据库中间件,旨在对大型数据集进行快速切片和分析(“OLAP”查询)。Druid最常用作支持实时接收、快速查询性能和高正常运行时间的用例的数据库。因此,Druid通常用于支持分析应用程序的gui,或者作为需要快速聚合的高度并发api的后端。
中间件带给我们的价值
中间件具备为上层应用软件的开发提供便捷的、开箱即用的服务交互和计算的能力,能够缩短开发周期;
屏蔽底层runtime的差异;
节省应用本身的系统资源,减少运行成本。
中间件的安全使用
使用新版本的中间件,修补最新的漏洞。低版本的中间件通常都存在较多的已知高危漏洞,被利用的可能性相较于新版本更高;
开启日志记录。通过记录日志并备份日志的方式留痕,方便发生安全事件后的溯源工作;
屏蔽非必要的目录访问。很多目录属于运维目录或者是存放敏感数据的目录,通常不需要被普通用户访问,要做好目录的访问控制权限,避免敏感信息的泄露;
合理设置会话时间,防止拒绝服务。限制每个IP每秒请求的数量,能有效减缓被DDoS攻击时资源消耗的速度;
制作重定向页面,防止默认页面存在隐患。默认的错误返回页面等,通常包含版本信息、中间件信息等,这些都会成为黑客分析攻击路线的线索;
设置高强度的口令。弱口令是网络安全中绕不开的话题,太多的防线是通过弱口令突破的,我们在使用中间件的过程中,需要设置口令的位置,一定要使用高强度密码,推荐大小写、特殊字符、数字的组合,并且10位以上。
以上就是关于中间件的简介以及部分的加固思路,针对不同的中间件,还有更多不同的使用和安全防护细节。
本文地址:百科问答频道 https://www.neebe.cn/wenda/886341.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!