首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

什麼是中介軟體?定義條件與典型應用場景

     編輯:程式設計疑難解答

定義:不直接面向終端使用者、不屬於作業系統核心、為其他應用程式提供通用服務/介接能力的軟體層**。

判斷條件 (三不原則)

條件說明範例
❌ 不直接滿足使用者需求使用者不直接啟動它、不直接操作它的 UI使用者不開啟「訊息佇列管理主控台」發訊息
❌ 非作業系統核心組件不在 Kernel 模式、非驅動程式、非系統服務不屬於 Windows Kernel / Linux kernel 模組
✅ 為其他軟體運行提供支撐提供通訊、交易、安全、整合、資料存取等通用能力MQ、ESB、應用伺服器、快取、API Gateway、ORM

典型分類與代表產品

  • 訊息導向中介軟體 (MOM):RabbitMQ、Kafka、RocketMQ、ActiveMQ — 非同步解耦、削峰填谷。
  • 企業服務匯流排 (ESB):MuleSoft、WSO2、IBM IIB — 異構系統整合、協議轉換、路由編排。
  • 應用伺服器 / 容器:Tomcat、Jetty、WildFly、WebLogic — Servlet/JSP/EJB 運行環境、連線池、執行緒管理。
  • 分散式快取:Redis、Memcached、Hazelcast — 高速讀取、Session 共享、限流計數器。
  • API 閘道:Kong、Spring Cloud Gateway、Apisix — 驗證、限流、熔斷、路由、日誌。
  • 資料存取/ORM:Hibernate、MyBatis、Entity Framework — 物件關聯映射、SQL 生成、快取。
  • 分散式事務/協調:Seata、ZooKeeper、Etcd — TCC/Saga、服務發現、配置中心。

架構定位圖

[前端/Client] → [API Gateway] → [微服務 A] ←→ [微服務 B]
                        ↑              ↑
                   [中介軟體層]    [中介軟體層]
         (快取/訊息/事務/配置/服務發現/監控...)

為何需要中介軟體?

  1. 解耦:服務間不直接調用,透過 MQ/Event Bus 異步通訊。
  2. 複用:通用功能 (登入、限流、日誌) 下沉中介層,業務服務專注核心邏輯。
  3. 彈性:快取抗讀爆發、MQ 抗寫爆發、熔斷防雪崩。
  4. 異構整合:ESB/Gateway 統一協議 (HTTP/gRPC/Thrift)、資料格式 (JSON/Protobuf/Avro)。

只要符合「不直接給用戶用、非 OS 核心、支撐其他軟體」三條件,無論開源商業、框架還是獨立服務,皆可稱為中介軟體。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved