当前位置: 首页 > article >正文

中间件有哪些分类?

中间件的分类

中间件是位于操作系统和应用程序之间的软件,它提供了一系列服务来简化分布式系统中的应用程序开发和集成。中间件可以根据其功能和用途被分为不同的类别。以下是中间件的一些主要分类:

1. 通信处理(消息)中间件:

  • 这种中间件支持异步通信,允许应用程序之间通过消息传递进行交互,确保了分布式系统中的可靠、高效和实时的跨平台数据传输。
  • 支持发布/订阅模式、点对点模式等。
  • 示例:RabbitMQ、Apache Kafka、RocketMQ等。

2. 事务处理(交易)中间件

  • 该类中间件管理分布式事务,确保事务的ACID属性,支持大量并发事务的处理,并提供故障恢复和系统自动切换的功能。
  • 保证分布式环境下的数据一致性。
  • 例如两阶段提交协议(2PC)就是一种典型的事务处理机制。
  • 示例:Java事务API(JTA)、Seata、Microsoft分布式事务协调器(MSDTC)等。

3. 数据存取管理中间件

  • 提供数据库的统一访问接口,简化数据库操作,支持数据的缓存、格式转换和解压等。
  • 用于管理和访问数据库,提供连接池、缓存和查询优化等服务,以提高数据库性能和管理数据访问。
  • 提供统一的数据访问接口,屏蔽底层数据库的具体实现细节。
  • 示例:MySQL Proxy、PostgreSQL PgBouncer、MyBatis、Hibernate、Oracle TimesTen等。

4. Web服务器或应用服务器中间件

  • 提供面向基于Web的应用程序的服务,包括处理HTTP请求、会话管理和安全性。
  • 提供HTTP服务,支持动态内容生成。
  • 如Apache HTTP Server, Nginx, Tomcat、WebLogic、Jboss等。

5. 安全中间件

  • 提供认证、授权、加密和访问控制等安全服务,保护应用程序和数据的安全。
  • 提供身份验证、授权等功能,保护应用程序的安全性。
  • 如OAuth、OpenID Connect、SAML, Kerberos等协议相关的实现。

6. 跨平台和架构的中间件

  • 支持跨不同操作系统和硬件平台的应用开发,如Java虚拟机和.NET Framework。

7. 专用平台中间件

  • 针对特定应用或平台提供优化的中间件服务,如Android SDK和iOS SDK。

8. 网络中间件

  • 提供网络通信的基础设施,如协议转换和网络连接管理。

9. 集成中间件

  • 促进异构系统和数据格式的集成,提供路由、转换和中介功能,如企业服务总线(ESB)。
  • 用来集成不同应用和服务,提供松耦合的服务交互。
  • MuleSoft, IBM Integration Bus,MuleSoft Anypoint Platform、Apache Camel等。

10. 数据库中间件

  • 在应用程序和数据库之间提供服务,如连接池、缓存和查询优化。

以下是一些常见的数据库中间件分类及其代表产品:

1.读写分离中间件

  • MyCAT:一个开源的分布式数据库中间件,实现了MySQL协议,支持读写分离、分库分表等功能。
  • Atlas:由360公司开发的MySQL协议数据库中间件,提供读写分离、负载均衡、故障切换等核心功能。

2.数据分片中间件

  • Sharding-JDBC:阿里巴巴开源的轻量级Java框架,专门用于数据库分片,支持JDBC级别的透明读写分离。
  • DRDS:阿里云提供的分布式关系型数据库服务,支持分库分表、平滑扩容、服务升降配等特性。

3.数据库连接池中间件

  • C3P0:一个为Java应用程序提供数据库连接池功能的开源框架。
  • HikariCP:一个高性能的Java JDBC连接池,以其速度快和资源占用少而著称。

4.数据库代理中间件

  • ProxySQL:一个高性能的数据库代理,支持连接池、读写分离、负载均衡、故障切换等特性。
  • MaxScale:MariaDB Corporation开发的数据库智能代理,提供高可用性、可伸缩性和安全性。

5.数据库统一访问中间件

  • OpenDDAL:一个开源的数据库中间件,提供统一的数据访问接口,支持多种异构数据库系统。

6.数据库监控和管理中间件

  • 阿里云EDAS:提供应用托管与服务治理,支持Dubbo应用,包括数据库性能监控和管理功能。

11. 缓存中间件

  • 用于管理和提供缓存服务,以加快数据访问速度并减轻后端系统的负载。
  • 通过将常用数据存储在内存中来提高数据访问速度。
  • 例如Redis, Memcached等。

12. API网关中间件

  • 管理和控制API的访问和调用,提供安全性、限流、监控等功能。
  • 作为系统的单一入口点,管理API的访问,并可能包含认证、限流、日志记录等功能。
  • Kong、Apigee、AWS API Gateway等。

13. 搜索中间件

  • 用于构建搜索功能和实现全文搜索,提供索引和搜索引擎功能。
  • 示例:Elasticsearch、Apache Solr等。

14. 虚拟化中间件

  • 提供虚拟化技术,将物理资源抽象为虚拟资源,以实现资源的灵活管理和利用。
  • 示例:VMware、KVM等。

15. 流程中间件

  • 用于管理和协调业务流程和工作流程,提供流程引擎和工作流引擎来定义、执行和监控流程。
  • 示例:Activiti、Camunda等。

16. 对象请求代理(ORB)中间件

  • 用于支持面向对象的分布式计算。
  • CORBA (Common Object Request Broker Architecture)是一个标准的ORB架构。

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

  • 允许一个程序在另一台计算机上执行子程序。
  • gRPC, Apache Thrift, Java RMI (Remote Method Invocation)都是RPC中间件的例子。

中间件的分类并不是固定不变的,随着技术的发展和创新,新的中间件类型可能会出现,因此中间件的分类是一个不断演变的领域。在选择中间件时,应根据具体的需求和应用场景来挑选合适的中间件产品。


http://www.kler.cn/news/343086.html

相关文章:

  • java Optional类与新的日期时间API
  • Spring Integration + MQTT
  • 浅谈C++之多线程处理TCP请求
  • 考研代码题:10.10 汉诺塔 爬楼梯 取球 猴子吃桃
  • 重学Java设计模式读后感之组合设计模式应用
  • OpenCV:图像直方图计算
  • 干部管理系统:实现干部全生命周期管理
  • 大学生玩转小袁口算:Python 抓包破解代码
  • 十LNMP
  • 教育部白名单赛事到底是什么?大家为什么那么重视它?
  • 宠物咖啡馆数字化解决方案:基于SpringBoot的实现
  • 链表(3)_重排链表_面试题
  • 【系统架构设计师】目录提纲
  • Jave常用的类---String类
  • Vue2基础
  • 神经网络的基本骨架——nn.Module(torch.nn里的Containers模块里的Module类)
  • 什么是WebSocket
  • Spring Boot微服务架构设计与实战
  • Java后端面试----某团一面
  • 网站集群批量管理-Ansible(ad-hoc)