论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Oracle
›
看一看 中间件Middleware
看一看 中间件Middleware
吴旭华
论坛元老
|
4 天前
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
1769
|
帖子
1769
|
积分
5307
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
中间件(Middleware)是介于操作系统与应用步伐之间的一层软件
它为分布式应用步伐提供了统一的通信、数据交换、服务调用、消息传递等本领。
它的作用就像“胶水”,毗连各个系统组件。
消息队列
Message Queue Middleware
消息队列是 现代分布式系统中的关键组件,用来解耦、削峰、异步处置惩罚和提高系统可扩展性。
消息队列是一种异步通信机制:发送方(Producer)把消息放到队列里,接收方(Consumer)从队列中取消息。中间的“队列”就是中间件的作用。
功能:
解耦:它让两个系统模块不必同时在线,发送者发送完就走,消费者有空再处置惩罚。
削峰填谷:在高并发场景下,队列能缓冲瞬间大量请求,防止系统崩溃。
异步处置惩罚
广播/订阅:一个消息可以被多个消费者订阅,好比用户注册乐成后,分别发送欢迎邮件、创建用户初始设置等。
中间件特点应用场景
RabbitMQ
基于 Erlang,支持 AMQP 协议,
功能丰富
,支持事件、插件机制强金融、电商、任务调度
Kafka
高吞吐量
、分布式、恒久化强、偏向日志收集/流处置惩罚日志收集、用户活动追踪、监控
RocketMQ
阿里开源,Java 编写,事件消息支持好,
性能精良
国内互联网、电商场景多见
ActiveMQ
Java 实现,老牌 MQ,支持多协议轻量级系统、企业系统
Redis Stream
Redis 5.0 引入,轻量级流处置惩罚方案简单任务队列、轻量异步处置惩罚
缓存中间件
缓存中间件是 高性能系统架构中不可或缺的一环,主要用于提高访问速度、减轻数据库压力、提升系统吞吐量。
缓存中间件是一个用于快速访问热门数据的中间层系统,通常存储在内存中。相较于数据库的磁盘访问,缓存是读写速度
非常快
的内存访问。
典型的缓存数据如:用户会话信息、验证码、热门消息、商品信息等。
功能:
加快读请求:好比一个商品详情页面,每次都查数据库会慢;缓存可以毫秒级相应。
降低数据库压力:热门数据可以从缓存中直接获取,极大淘汰数据库访问量。
数据预加载:可以在系统启动或访问前,提前将数据加载进缓存。
分布式共享数据:缓存可以部署为集群,多个服务共享缓存数据。
中间件特点应用场景
Redis
单线程、支持多种数据结构、
恒久化
、高可用集群、Lua脚本分布式缓存、排行榜、计数器、会话存储
Memcached
简单
、纯内存、支持 key-value、无恒久化
临时
缓存、对象缓存
Ehcache
嵌入式缓存、Java 集成方便单机应用、JVM 内部缓存
Guava Cache
Google 的当地缓存库,轻量级当地缓存、小规模系统 常见术语:
缓存穿透:不存在
缓存击穿:刚好逾期
缓存雪崩:大量同时逾期
Redis 的典型使用场景:
登录状态 Session 管理,商品详情缓存,秒杀库存控制,排行榜,延迟任务
数据库中间件
数据库中间件:解决数据库在大规模系统中遇到的性能瓶颈、扩展性题目以及高可用等需求。
功能:
分库分表(水平拆分)【数据库分片】:将大表根据特定规则(如 id 取模)拆分为多个小表或分到差别数据库节点上。
读写分离(主从架构):写操作走主库,读操作走从库,提高并发本领。
数据库路由
SQL剖析与重写: 自动拼接分页、聚合等操作
事件和谐(跨库事件): 支持 分布式事件协议(如 XA、TCC、SAGA),包管事件同等性。
中间件特点适用场景
ShardingSphere
Apache 顶级项目,功能最强,支持分布式事件、弹性扩容、SQL重写复杂系统,数据库中间层统一解决方案
MyCat
国内常用,基于 Cobar,设置文件驱动,易部署中小型系统、轻量分库分表
TDDL(淘宝)
阿里早期内部使用,支持双十一高并发场景电商平台、分布式大数据系统
Vitess
YouTube 开源,支持海量分库分表和水平扩展高可用、大规模数据库服务
OceanBase
蚂蚁团体自研,融合关系型数据库与分布式本领金融级数据库、强同等需求场景 长处:
横向扩展本领强:突破单库容量限制
容灾本领增强:支持主从切换、高可用架构
透明接入:应用层无需修改大量代码
灵活路由:根据设置灵活选择数据节点
服务注册与发现
Service Registry & Discovery
服务注册与发现 主要用于解决“服务实例动态厘革”带来的访问题目
在微服务架构下,一个系统通常由多个小服务组成,服务实例可能频繁上线、下线、扩容或重启,因此不能像单体应用那样写死 IP 和端口。
于是,我们需要一个“服务注册中央”来动态记载每个服务的地址信息。别的服务通过“服务发现”找到它们要调用的服务。
流程:
服务提供者(Service A)启动 -> 向注册中心注册自己的信息
服务消费者(Service B) -> 从注册中心拉取/订阅服务列表 -> 根据负载均衡策略选择一个实例调用
复制代码
中间件特点适用场景
Eureka
Netflix 开源,经典 Java 生态,得当 Spring Cloud,支持自我保护机制中小型微服务架构
Nacos
阿里巴巴开源,支持服务注册/发现 + 设置中央,易集成 Dubbo/Spring Cloud国内主流项目
Consul
HashiCorp 开源,支持健康检查、KV存储、DNS 发现、跨语言支持好跨语言服务体系
Zookeeper
强同等性,CAP 中偏 CP,Apache 项目,广泛用于 Dubbo、Kafka需要严格同等性的系统
Etcd
CoreOS 开源,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),支持高效的二进制序列化,内建支持负载平衡、认证、追踪等高性能、高并发的微服务架构
Dubbo
Apache 提供,支持多种协议和序列化方式,具有服务治理和负载平衡功能大规模分布式系统,企业级服务框架
Thrift
由 Facebook
开发
,支持多种编程语言,灵活的跨语言调用,支持多种协议和传输层跨语言应用,性能要求高的场景
Hessian
轻量级、快速的二进制协议,得当大规模分布式系统高效的分布式服务调用
RMI
Java 提供的 RPC 机制,适用于 Java 环境中远程方法调用Java 环境内的服务调用
Zookeeper
分布式和谐服务,常用于服务注册、设置管理等,支持高可用性服务发现、设置管理
Consul
提供服务发现、健康检查和键值存储,适用于微服务架构微服务架构中的服务注册和发现
Restful API
基于 HTTP 协议的简单、易用的远程调用机制简单的 Web 服务和 RESTful 接口
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
吴旭华
论坛元老
这个人很懒什么都没写!
楼主热帖
【云原生】第二篇--容器管理工具 Docke ...
数据库系统课程设计(高校成绩管理数据 ...
《原CSharp》第二回 巧习得元素分类 子 ...
使用TrueNas(FreeNas)进行华为手机备 ...
JVM虚拟机性能监控与故障处理工具(3) ...
【图论】—— 有向图的强连通分量 ...
java中==和equals区别
Spark 总复习
mamba-ssm安装building wheel卡着不动 ...
AWVS漏洞扫描器的使用
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
主机安全
数据仓库与分析
前端开发
程序人生
鸿蒙
SQL-Server
快速回复
返回顶部
返回列表