2022-08-31 13:41:31
中间件是一种介于应用系统和系统软件之间的基础软件,用于协调分布式系统中的资源、服务及数据交互,提供通信支持、服务整合与功能扩展能力。 在Java技术体系中,中间件通过标准化接口和协议屏蔽底层复杂性,实现异构系统间的解耦与高效协作。以下是具体分类及说明:
1. Web中间件Apache Tomcat:轻量级Servlet容器,适合中小型Java Web应用。
Jetty:嵌入式服务器,常用于微服务架构。
GlassFish/JBOSS:企业级应用服务器,支持EJB等复杂组件。

ActiveMQ:传统JMS实现,支持多种协议。
RabbitMQ:轻量级、高可靠的消息代理,适合中小规模系统。
Kafka/RocketMQ:分布式流处理平台,适用于大数据实时分析。
数据分片:将数据分散到多个节点,平衡负载。
失效策略:如LRU(答禅最近最少使用)算法管理缓存空间。
Redis:支持多种数据结构,提供持久化与集群功能。
Memcached:纯内存缓存,性能极高但无持久化。
事务管理器:协调全局事务的提交或回滚。
资源管理器:管理本地事务资源(如数据库连接)。
Atomikos:开源事务管理器,支持XA协议。
Seata:阿里巴巴开源的分布式事务解决方案。
MyCat:开源中间件,支持MySQL协议的分片与路由。
Sharding-JDBC:轻量级框架,通过JDBC接口实现分库分表。
Atlas:360公司开发的MySQL代理层,支持读写分离。清团尘
序列化/反序列化:将对象转换为字节流传输。
服务注册中心:如Zookeeper、Nacos,管理服务实例信息。
Dubbo:阿里巴巴开源的高性能RPC框架。
gRPC:基于HTTP/2协议的跨语言RPC框架。
Spring Cloud:集成服务治理、配置中心等功能的微服务套件。
中间件已成为分布式系统架构的核心组件,其选择需结合业务场景、技术栈及团队能力综合评估。后续可针对具体中间件(如Redis、Dubbo)深入探讨实现原理与最佳实践。