您的位置:首页 > 教育 > 锐评 > 石家庄做网站的有哪些公司_广告联盟点击赚钱平台_平台推广是做什么_搜索引擎入口google

石家庄做网站的有哪些公司_广告联盟点击赚钱平台_平台推广是做什么_搜索引擎入口google

2025/4/26 15:40:18 来源:https://blog.csdn.net/JK01WYX/article/details/147475955  浏览:    关键词:石家庄做网站的有哪些公司_广告联盟点击赚钱平台_平台推广是做什么_搜索引擎入口google
石家庄做网站的有哪些公司_广告联盟点击赚钱平台_平台推广是做什么_搜索引擎入口google

中间件(Middleware)是介于操作系统与应用程序之间的一层软件

它为分布式应用程序提供了统一的通信、数据交换、服务调用、消息传递等能力。
它的作用就像“胶水”,连接各个系统组件。

文章目录

      • 消息队列
      • 缓存中间件
      • 数据库中间件
      • 服务注册与发现
      • Web 中间件
      • RPC 中间件

消息队列

Message Queue Middleware

消息队列是 现代分布式系统中的关键组件,用来解耦、削峰、异步处理和提高系统可扩展性。

消息队列是一种异步通信机制:发送方(Producer)把消息放到队列里,接收方(Consumer)从队列中取消息。中间的“队列”就是中间件的作用。

功能:

  • 解耦:它让两个系统模块不必同时在线,发送者发送完就走,消费者有空再处理。
  • 削峰填谷:在高并发场景下,队列能缓冲瞬间大量请求,防止系统崩溃。
  • 异步处理
  • 广播/订阅:一个消息可以被多个消费者订阅,比如用户注册成功后,分别发送欢迎邮件、创建用户初始配置等。
中间件特点应用场景
RabbitMQ基于 Erlang,支持 AMQP 协议,功能丰富,支持事务、插件机制强金融、电商、任务调度
Kafka高吞吐量、分布式、持久化强、偏向日志收集/流处理日志收集、用户行为追踪、监控
RocketMQ阿里开源,Java 编写,事务消息支持好,性能优秀国内互联网、电商场景多见
ActiveMQJava 实现,老牌 MQ,支持多协议轻量级系统、企业系统
Redis StreamRedis 5.0 引入,轻量级流处理方案简单任务队列、轻量异步处理

缓存中间件

缓存中间件是 高性能系统架构中不可或缺的一环,主要用于提高访问速度、减轻数据库压力、提升系统吞吐量。

缓存中间件是一个用于快速访问热点数据的中间层系统,通常存储在内存中。相较于数据库的磁盘访问,缓存是读写速度非常快的内存访问。
典型的缓存数据如:用户会话信息、验证码、热点新闻、商品信息等。

功能:

  • 加速读请求:比如一个商品详情页面,每次都查数据库会慢;缓存可以毫秒级响应。
  • 降低数据库压力:热门数据可以从缓存中直接获取,极大减少数据库访问量。
  • 数据预加载:可以在系统启动或访问前,提前将数据加载进缓存。
  • 分布式共享数据:缓存可以部署为集群,多个服务共享缓存数据。
中间件特点应用场景
Redis单线程、支持多种数据结构、持久化、高可用集群、Lua脚本分布式缓存、排行榜、计数器、会话存储
Memcached简单、纯内存、支持 key-value、无持久化临时缓存、对象缓存
Ehcache嵌入式缓存、Java 集成方便单机应用、JVM 内部缓存
Guava CacheGoogle 的本地缓存库,轻量级本地缓存、小规模系统

常见术语:
缓存穿透:不存在
缓存击穿:刚好过期
缓存雪崩:大量同时过期

Redis 的典型使用场景:

登录状态 Session 管理,商品详情缓存,秒杀库存控制,排行榜,延迟任务

数据库中间件

数据库中间件:解决数据库在大规模系统中遇到的性能瓶颈、扩展性问题以及高可用等需求。

功能:

  • 分库分表(水平拆分)【数据库分片】:将大表根据特定规则(如 id 取模)拆分为多个小表或分到不同数据库节点上。
  • 读写分离(主从架构):写操作走主库,读操作走从库,提高并发能力。
  • 数据库路由
  • SQL解析与重写: 自动拼接分页、聚合等操作
  • 事务协调(跨库事务): 支持 分布式事务协议(如 XA、TCC、SAGA),保证事务一致性。
中间件特点适用场景
ShardingSphereApache 顶级项目,功能最强,支持分布式事务、弹性扩容、SQL重写复杂系统,数据库中间层统一解决方案
MyCat国内常用,基于 Cobar,配置文件驱动,易部署中小型系统、轻量分库分表
TDDL(淘宝)阿里早期内部使用,支撑双十一高并发场景电商平台、分布式大数据系统
VitessYouTube 开源,支持海量分库分表和水平扩展高可用、大规模数据库服务
OceanBase蚂蚁集团自研,融合关系型数据库与分布式能力金融级数据库、强一致需求场景

好处:

  • 横向扩展能力强:突破单库容量限制
  • 容灾能力增强:支持主从切换、高可用架构
  • 透明接入:应用层无需修改大量代码
  • 灵活路由:根据配置灵活选择数据节点

服务注册与发现

Service Registry & Discovery

服务注册与发现 主要用于解决“服务实例动态变化”带来的访问问题

在微服务架构下,一个系统通常由多个小服务组成,服务实例可能频繁上线、下线、扩容或重启,因此不能像单体应用那样写死 IP 和端口。
于是,我们需要一个“服务注册中心”来动态记录每个服务的地址信息。其它服务通过“服务发现”找到它们要调用的服务。

流程:

服务提供者(Service A)启动 -> 向注册中心注册自己的信息服务消费者(Service B) -> 从注册中心拉取/订阅服务列表 -> 根据负载均衡策略选择一个实例调用
中间件特点适用场景
EurekaNetflix 开源,经典 Java 生态,适合 Spring Cloud,支持自我保护机制中小型微服务架构
Nacos阿里巴巴开源,支持服务注册/发现 + 配置中心,易集成 Dubbo/Spring Cloud国内主流项目
ConsulHashiCorp 开源,支持健康检查、KV存储、DNS 发现、跨语言支持好跨语言服务体系
Zookeeper强一致性,CAP 中偏 CP,Apache 项目,广泛用于 Dubbo、Kafka需要严格一致性的系统
EtcdCoreOS 开源,Kubernetes 的底层组件,支持高并发、强一致Kubernetes 原生注册系统

Web 中间件

Web 中间件 要用于连接前端请求和后端服务,提供多种通用功能。

类别代表产品功能
反向代理Nginx、Apache HTTPD负载均衡、SSL 终止、静态资源、请求转发
API 网关Kong、APISIX、Zuul、Spring Cloud Gateway路由、认证、限流、服务聚合、跨域处理
Web 框架中间件Express.js 中间件、Django Middleware、Flask Middleware权限、日志、跨域、参数处理
服务网格数据面Envoy、Linkerd服务之间通信控制,透明代理
静态资源中间件CDN、Nginx、Varnish缓存、就近访问、内容分发
应用服务器Tomcat、JettyHTTP 服务、Servlet 容器、JSP 解析
网络通信框架Netty高性能网络通信、异步事件驱动

RPC 中间件

Remote Procedure Call,远程过程调用

是一种通过网络请求调用远程服务器上的函数或方法的技术,它隐藏了底层的网络通信细节,让开发者像调用本地方法一样调用远程方法【Feign】。
简化了分布式系统的构建。

名称特点使用场景
gRPC基于 Google 的 Protocol Buffers(Protobuf),支持高效的二进制序列化,内建支持负载均衡、认证、追踪等高性能、高并发的微服务架构
DubboApache 提供,支持多种协议和序列化方式,具有服务治理和负载均衡功能大规模分布式系统,企业级服务框架
Thrift由 Facebook 开发,支持多种编程语言,灵活的跨语言调用,支持多种协议和传输层跨语言应用,性能要求高的场景
Hessian轻量级、快速的二进制协议,适合大规模分布式系统高效的分布式服务调用
RMIJava 提供的 RPC 机制,适用于 Java 环境中远程方法调用Java 环境内的服务调用
Zookeeper分布式协调服务,常用于服务注册、配置管理等,支持高可用性服务发现、配置管理
Consul提供服务发现、健康检查和键值存储,适用于微服务架构微服务架构中的服务注册和发现
Restful API基于 HTTP 协议的简单、易用的远程调用机制简单的 Web 服务和 RESTful 接口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com