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

中间件有哪些分类?

中间件的分类

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

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中间件的例子。

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

相关文章:

中间件有哪些分类?

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

开始新征程__10.13

好久没有更新 csdn 了,身边的人都说 csdn 水,但是在我看来,它在我大一这一年里对我的帮助很大,最近上账号看看,看见了网友评论,哈哈,决定以后还是继续更新,分享自己的学习心得。...

SAP 联合创始人谈Home Office

软件公司 SAP 的家庭办公室规定继续引发激烈争论,其联合创始人哈索-普拉特纳(Hasso Plattner)对此也有明确看法。 沃尔多夫--年初,SAP 首席执行官克里斯蒂安-克莱因(Christian Klein)向员工宣誓 "努力…...

基于Jenkins+K8S构建DevOps自动化运维管理平台

目录 1.k8s助力DevOps在企业落地实践 1.1 传统方式部署项目为什么发布慢,效率低? 1.2 上线一个功能,有多少时间被浪费了? 1.3 如何解决发布慢,效率低的问题呢? 1.5 什么是DevOps? 1.5.1 敏…...

【OpenCV】(一)—— 安装opencv环境

【OpenCV】(一)—— 安装opencv环境 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV 是用 C 编写的,但它也有 Python、Java 和 MATLAB 接口,并支持 Windows…...

MybatisPlus操作符和运算值

好久没有更新了,这次更新一个当前端需要对运算符和运算值都需要前端传递给后端,动态拼接运算条件时的处理方法。 1、踩雷 查询年龄 >20,其中>前端下拉框选择,20值前端下拉框选择 1)用户表: CREAT…...

Index-1.9B模型部署教程

一、介绍 Index-1.9B 系列是 Index 系列型号的轻量级版本,包含以下型号: Index-1.9B 基础:具有 19 亿个非嵌入参数的基础模型,在 2.8T 主要为中文和英文的语料上进行预训练,在多个评测基准上与同级别模型相比领先。I…...

C语言 | Leetcode C语言题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; char * validIPAddress(char * queryIP) {int len strlen(queryIP);if (strchr(queryIP, .)) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur -1;if (i 3) {cur len;} else {char * p strchr(queryIP last 1, .);if (p…...

Qt自定义一个圆角对话框

如何得到一个圆角对话框&#xff1f; 步骤&#xff1a; 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget&#xff0c;给这个widget设置圆角&#xff0c;并添加到布局中让他充满对话框 5、后续对…...

C++ 中的自旋锁应用:SpinLockManual、SpinLockGuard 和 SpinLockTryGuard

在多线程编程中,同步机制是确保线程安全的关键。自旋锁(Spin Lock)是一种常见的同步机制,它通过忙等待(busy-waiting)的方式来实现线程间的互斥访问。在 C++ 中,我们可以使用 std::atomic_flag 来实现自旋锁。本文将介绍如何使用 SpinLockManual、SpinLockGuard 和 Spin…...

计算机网络 tcp和udp

目录 一、TCP 建立连接-TCP 三次握手 1&#xff09; 什么是半连接队列和全连接队列&#xff1f; 2&#xff09; 为什么要三次握手? 3&#xff09; 三次握手过程中可以携带数据吗&#xff1f; 断开连接-TCP 四次挥手 1&#xff09; 为什么要四次挥手&#xff1f; 2&…...

React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性

文章目录 一、初始React1. React的基本认识2. Hello案例2.1 三个依赖2.2 渲染页面2.3 hello案例完整代码 二、类组件1. 封装类组件2. 组件里的数据3. 组件里的函数 (重点)4. 案例练习(1) 展示电影列表 三、JSX语法1. 认识JSX2. JSX书写规范及注释3. JSX嵌入变量作为子元素4. JS…...

计算机网络 2024 11 10

计算机网络 - 知乎计算机网络&#xff08;四&#xff09;—— 网络层&#xff08;1、2&#xff09;&#xff1a;网络层概述、网络层提供的两种服务_以下属于网络层范畴的是a透明传输比特流b媒体接入控制c ip地址d-CSDN博客 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔…...

King3399(ubuntu文件系统)风扇驱动

该文章仅供参考&#xff0c;编写人不对任何实验设备、人员及测量结果负责&#xff01;&#xff01;&#xff01; 0 引言 文章主要介绍King3399&#xff08;ubuntu文件系统&#xff09;风扇控制&#xff08;GPIO&#xff09;&#xff0c;涉及king-rk3399.dts设备树修改&#x…...

前端开发笔记--html 黑马程序员2

文章目录 前端常用标签一、标题标签二、段落标签和换行标签和水平线标签三、文本格式化标签![请添加图片描述](https://i-blog.csdnimg.cn/direct/87583fa23fe04229b016912051f3fc45.png)四、盒子标签五、图像标签六、连接标签七、注释和特殊字符 八、表格标签的基本使用九、列…...

django(二):定义第一个函数及url介绍

1.定义index函数 """ django里的第一个函数必须是request,不写会报错 """def index(request):return HttpResponse("Hello, world. Youre at the index of djangoProject.")注意&#xff01; ①.index函数里的形参必须为request ②.r…...

66 消息队列

66 消息队列 基础概念 参考资料&#xff1a;消息队列MQ快速入门&#xff08;概念、RPC、MQ实质思路、队列介绍、队列对比、应用场景&#xff09; 消息队列就是一个使用队列来通信的组件&#xff1b;为什么需要消息队列&#xff1f; 在实际的商业项目中&#xff0c;它这么做肯…...

【系统分析师】-案例篇-信息系统安全

1、信息系统的安全威胁 来自于物理环境、通信链路、网络系统、操作系统、应用系统以及管理等多个方面。 物理安全威胁是指对系统所用设备的威胁&#xff0c;如自然灾害、电源故障、数据库故障和设备被盗等造成数据丢失或信息泄漏。 通信链路安全威胁是指在传输线路上安装窃…...

基于极光优化算法(Polar Lights Optimization, PLO)的多无人机协同三维路径规划(提供MATLAB代码)

一、极光优化算法介绍 极光优化算法&#xff08;Polar Lights Optimization, PLO&#xff09;是2024年提出的一种新型的元启发式优化算法&#xff0c;它从极光这一自然现象中汲取灵感。极光是由太阳风中的带电粒子在地球磁场的作用下&#xff0c;与地球大气层中的气体分子碰撞…...

TypeScript类型体操5

类型编程主要的目的就是对类型做各种转换&#xff0c;如何对类型做修改&#xff1f; TypeScript 类型系统支持 3 种可以声明任意类型的变量&#xff1a; type、infer、类型参数。 type&#xff1a;类型别名&#xff0c;声明一个变量存储某个类型。type t Promise<number&g…...

5步实现AutoHotkey脚本独立运行:Ahk2Exe编译实战指南

5步实现AutoHotkey脚本独立运行&#xff1a;Ahk2Exe编译实战指南 【免费下载链接】Ahk2Exe Official AutoHotkey script compiler - written itself in AutoHotkey 项目地址: https://gitcode.com/gh_mirrors/ah/Ahk2Exe 你是否遇到过这样的困扰&#xff1f;精心编写的A…...

Linuxbonding链路生产排障流程

Linuxbonding链路生产排障流程这是一篇面向中级 Linux 使用者的技术文章&#xff0c;主题聚焦在bonding链路&#xff0c;重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中&#xff0c;bonding链路相关问题往往不会以单一错误形式出现&#xff0c;而是混杂在日志、权限、…...

All in Token,移动,电信,联通,百度,阿里,字节,华为,Token战争,Token无用:李彦宏用DAA终结了AI的度量衡之争

今年4月&#xff0c;AI行业出现了一组让投资人坐立难安的数据&#xff1a;Anthropic年化营收突破300亿美元&#xff0c;正式超过OpenAI的约250亿美元。但反常的是&#xff0c;据第三方机构估算&#xff0c;Claude的月活用户仅约为ChatGPT的2.44%。以及&#xff0c;Anthropic的模…...

基于 Next.js 的无头电商架构实战:从 Vercel Commerce 看现代全栈开发

1. 项目概述&#xff1a;一个面向未来的全栈电商起点如果你最近在琢磨着用 Next.js 搞一个电商网站&#xff0c;或者想找一个现代、开箱即用的全栈电商模板来启动项目&#xff0c;那你大概率已经听说过vercel/commerce这个仓库了。它不是某个具体的电商平台&#xff0c;而是一个…...

湿版摄影×AI生成革命:为什么93%的MJ用户调不出真实碘化银斑痕?——资深暗房师+AI训练师双视角深度拆解

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;湿版摄影AI生成革命&#xff1a;为什么93%的MJ用户调不出真实碘化银斑痕&#xff1f;——资深暗房师AI训练师双视角深度拆解 湿版火棉胶摄影术诞生于1851年&#xff0c;其不可复制的物理噪点——由碘化…...

避坑指南:uniapp在微信小程序中调用相机和人脸识别的权限与兼容性问题

Uniapp微信小程序相机与人脸识别开发避坑指南 微信小程序作为轻量级应用平台&#xff0c;其相机与人脸识别功能在金融、社交、教育等领域应用广泛。然而&#xff0c;当开发者使用Uniapp这一跨平台框架进行微信小程序开发时&#xff0c;往往会遇到各种兼容性和权限问题。本文将深…...

OneQuery:统一异构数据源查询的抽象层设计与实战

1. 项目概述&#xff1a;一个查询&#xff0c;无限可能最近在折腾一个数据聚合项目&#xff0c;需要从多个异构数据源里捞数据&#xff0c;然后统一处理。这活儿听起来简单&#xff0c;但真干起来&#xff0c;每个数据源都有自己的查询语法、连接方式和返回格式&#xff0c;光是…...

中鼎智能冲刺港股:年营收18.8亿 诺力股份是实控股东

雷递网 雷建平 5月16日中鼎智能&#xff08;无锡&#xff09;科技股份有限公司&#xff08;简称&#xff1a;“中鼎智能”&#xff09;日前更新招股书&#xff0c;准备在港交所上市。截至2026年3月31日止三个月&#xff0c;与上年同期相比&#xff0c;中鼎智能录得相对稳定的收…...

容器化技术实战:从Docker到Kubernetes的体系化学习路径

1. 项目概述&#xff1a;一个容器化时代的“瑞士军刀”训练营 如果你正在或即将踏入容器化技术领域&#xff0c;无论是刚接触Docker的新手&#xff0c;还是想系统梳理Kubernetes的开发者&#xff0c;又或者是需要为团队进行技术培训的架构师&#xff0c;那么“jpetazzo/contai…...

Arm Neoverse CMN-700架构与寄存器配置详解

1. Arm Neoverse CMN-700架构概览在现代多核处理器设计中&#xff0c;如何高效实现缓存一致性一直是核心挑战。Arm Neoverse CMN-700&#xff08;Coherent Mesh Network&#xff09;作为第二代一致性网格网络IP&#xff0c;采用分布式架构解决了从16核到256核规模的数据一致性问…...