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

阿里开源中间件一览

1. 概述以及竞品对比

间件介绍官方链接竞品竞品介绍异同点对比
Dubbo高性能的RPC框架,用于实现分布式服务的调用和管理。DubbogRPC

gRPC是由Google开源的一款高性能、通用的RPC框架,支持多种编程语言

链接:gRPC

Dubbo更注重于服务治理和可扩展性,而gRPC更注重于跨语言和跨平台的通信。
RocketMQ高性能、可靠的分布式消息队列中间件,用于实现异步通信和解耦。RocketMQApache KafkaApache Kafka是一款高吞吐量的分布式消息队列系统,支持水平扩展和持久化消息存储。Apache Kafka链接:Apache KafkaRocketMQ适用于大规模、高吞吐量的场景,而Kafka适用于大数据流处理和日志传输。
Tair阿里巴巴自研的分布式缓存中间件,具有高可靠性、高性能和高扩展性。TairRedisRedis是一款流行的开源分布式缓存和数据存储系统,支持丰富的数据结构和复杂的操作。Redis链接:RedisTair适用于高并发、大规模集群的场景,而Redis注重于丰富的数据结构和灵活的扩展性。
OceanBase阿里巴巴自研的分布式关系型数据库中间件,具有高可用性、高扩展性和高性能。OceanBaseTiDBTiDB是一款开源的分布式关系型数据库,支持水平扩展和强一致性的分布式事务。
链接:TiDB
OceanBase更注重于高可靠性和高性能的企业级场景,而TiDB更注重于云原生和弹性扩展的需求。
Sentinel流量控制和熔断降级的Java中间件,用于保护系统稳定性和可用性。SentinelHystrixHystrix是Netflix开源的一款流量控制和熔断降级库,用于构建弹性的分布式系统。
链接:Hystrix
Sentinel更注重于实时监控和动态规则配置,而Hystrix更注重于线程隔离和回退策略。
Druid高性能的数据库连接池中间件,提供连接管理和监控功能。DruidHikariCP

HikariCP是一款流行的高性能数据库连接池,具有快速、轻量级和简单的特点。HikariCP

链接:HikariCP

Druid提供了更丰富的监控和统计功能,而HikariCP注重于轻量级和高性能的连接池实现。
Nacos服务注册和配置中心,用于管理系统的服务和配置。NacosConsul

Consul是一款开源的服务发现和配置中心,提供分布式服务注册和键值存储等功能。

Consul链接:Consul

Nacos更注重于高可用性和可扩展性,而Consul更注重于多数据中心和多服务发现机制。
Seata分布式事务中间件,用于保证分布式系统的事务一致性。SeataTCC-TransactionTCC-Transaction是一种基于补偿机制的分布式事务模式,用于构建分布式事务一致性保证。
链接:TCC-Transaction
Seata提供了更全面的事务管理机制和解决方案,而TCC-Transaction更注重于尝试-确认-取消的补偿模式。
FDFS分布式文件系统,用于存储和管理大规模文件。FDFSHadoop HDFS

Hadoop HDFS是Apache Hadoop生态系统中的分布式文件系统,用于大规模数据存储和处理。

Hadoop HDFS链接:Hadoop HDFS

FDFS更注重于轻量级和高性能的文件存储,而Hadoop HDFS更注重于大数据处理和容错性。
DRDS分布式关系型数据库中间件,用于管理分布式数据库和查询优化。DRDSShardingSphere

ShardingSphere是一款开源的分布式数据库中间件,支持分库分表和数据分片等功能。ShardingSphere

链接:ShardingSphere

DRDS更注重于简化分布式数据库的部署和管理,而ShardingSphere更注重于灵活的分库分表和数据分片策略。
Havenask(HA3)一种分布式、面向文档的数据库,可以存储、搜索和分析数据havenask-federationElasticsearch

Elasticsearch是一个开源的分布式搜索和分析引擎,它构建在Apache Lucene库之上。它被设计用于处理大规模数据集的快速搜索、分析和存储。

链接:ElasticSearch

2. 详细介绍

//TODO

2.1. Tair

Tair是阿里巴巴自主研发的高性能、分布式、可扩展、高可靠的 key/value 存储系统,Tair包括:MDB、LDB、RDB。Tair相较于Redis最大的区别是其底层支持多款引擎(MDB、RDB、LDB),不同的引擎工作于不同的场景(这一点有点像MySQL的插件化存储引擎,但是又不是完全像。MySQL对外接口是统一的,Tair的RDB引擎和另外两者数据模型差异较大)。各个引擎特点如下:

  • MDB:

完全依赖于内存,高读写,不支持持久化,适用于:

  1. 缓存,降低对后端数据库的访问压力,所有需要后端有持久化的DB如MySQL
  2. 可临时数据存储,分钟级别后失效,偶尔数据丢失不会对业务产生较大影响。
  3. 读多写少,读 QPS 达到万级别以上。
  • RDB:

基于redis,提供除了KV以外的数据结构存储,如list,set等,依赖于redis的特性,适用于(主要是基于复杂的数据结构):

  1. 如排行榜、计数器缓冲、数据统计(如TopN,交集,并集等)、最新项目检索、地理位置存储及range查询
  2.  实时统计和过期处理,如用户投票及排序;复杂的数据结构缓存及内存数据库
  • LDB:

基于google的levelDB。存储磁盘为SSD,内嵌一层MDB作为中间层,在实现持久化的过程中,也能提供较高的性能,适用于:

  1. 黑白单等访问量大,miss率高的场景
  2. 离线数据查询

2.2. RocketMQ

2.3. Dubbo

3. 自研中间件的原因

  1. 定制化需求:阿里巴巴的业务规模和复杂度巨大,需要满足特定的业务需求和性能要求。通过自研中间件,阿里巴巴可以根据自身需求进行深度定制和优化,以提供更好的性能和稳定性。
  2. 高可用性和可靠性:阿里巴巴的业务对中间件的高可用性和可靠性要求非常高。自研中间件可以根据业务场景和需求进行架构设计和技术选型,以保证数据的安全性和服务的连续性。
  3. 阿里生态集成:阿里巴巴拥有庞大的阿里云生态系统和云原生技术栈。自研中间件可以更好地集成到阿里云的产品和服务中,提供更加完整的解决方案和生态系统。
  4. 安全性考虑:阿里巴巴是一家大型互联网企业,面临着各种安全威胁和攻击。自研中间件可以针对阿里巴巴的安全需求进行定制开发,提供更高的安全性和防护能力。
  5. 技术创新和积累:自研中间件可以提供阿里巴巴技术团队的创新和积累。通过自主研发中间件,阿里巴巴能够在技术上保持领先地位,并能够更好地满足未来的业务需求。

尽管阿里巴巴自研了许多中间件,但同时也积极参与和贡献开源社区。例如,阿里巴巴是Apache Dubbo和RocketMQ等开源项目的发起者和主要贡献者。通过开源,阿里巴巴可以与全球开发者社区合作,共同推动中间件技术的发展和创新。

附录:

1. 阿里有哪些厉害的开源中件间?

相关文章:

阿里开源中间件一览

1. 概述以及竞品对比 间件介绍官方链接竞品竞品介绍异同点对比Dubbo高性能的RPC框架,用于实现分布式服务的调用和管理。DubbogRPC gRPC是由Google开源的一款高性能、通用的RPC框架,支持多种编程语言 链接:gRPC Dubbo更注重于服务治理和可扩展…...

Ubuntu20.04下Salome_meca 2022软件安装(支持GPU加速)

一、什么是Salome_meca ? Salome_meca 是一个开源的有限元分析软件套件,主要用于模拟和分析复杂的力学问题。它是 Salome 平台的一部分,Salome 是一个通用的集成化软件环境,用于建模、预处理、模拟和后处理各种复杂的工程和科学问…...

uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。 首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选。 解决思路: 1、新建页面:iosLogin.vue,pages.json中 这个页面需要放在第一…...

JS逆向爬虫---请求参数加密③【比特币交易爬虫】

查询参数确定 t无加密 请求头参数加密 X-Apikey参数加密确定 X-Apikey逆向 const API_KEY "a2c903cc-b31e-4547-9299-b6d07b7631ab" function encryptApiKey(){ var t API_KEY, e t.split(""), n e.splice(0, 8);return t e.concat(n).join("&…...

云计算:未来科技的超级英雄

随着科技的不断发展,云计算已经成为了现代社会的核心驱动力之一。从智能家居到无人驾驶,从虚拟现实到人工智能,云计算的崭新时代已经到来,为我们的生活带来了智能、便捷和有趣的体验。本文将带领读者穿越时空,探索未来…...

【Node.js入门】1.3 开始开发Node.js应用程序

1.3 开始开发Node.js应用程序 学习目标 (1)熟悉开发工具Visual Studio Code的基本使用; (2)掌握Node.js应用程序的编写、运行和调试的基本方法。 构建第一个 Node.js应用程序 代码 const http require("htt…...

ansible-playbook之file模块

1、file模块功能说明 file模块主要用于远程主机上的文件操作,file模块包含如下选项: force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软…...

Vue路由介绍及使用

一、单页应用程序介绍 1.概念 单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现,当切换不同的功能时,页面不会进行刷新,类似Ajax请求,但请求地址会发生部分变化。 2.具体示例 单…...

案例 - 拖拽上传文件

直接看效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>拖拽上传文件</title>&l…...

github 上传代码报错 fatal: Authentication failed for ‘xxxxxx‘

问题 今天一时兴起创建了个 github 新仓库&#xff0c;首次上传本地代码时&#xff0c;遇到了一个报错。本来以为是账号密码的问题&#xff0c;搞了好几次&#xff0c;发现都没错的情况下还是上传不上去。目测判断是认证相关问题&#xff0c;具体报错信息如下&#xff1a; rem…...

Linux虚拟网络设备之bridge

继前两篇介绍了tun/tap和veth之后&#xff0c;本篇将介绍Linux下常用的一种虚拟网络设备&#xff0c;那就是bridge(桥)。 Linux ip netns 命令-CSDN博客 veth-pair,netns-CSDN博客 图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN_veth 转发 有拷贝-C…...

最后一个大更新!Win11 2023正式发布:Copilot终于来了

美国当地时间周二&#xff0c; 微软正式宣布为所有符合条件的Windows 11电脑发布Windows 11 2023更新(Windows 11 23H2)。 考虑到微软计划在2024年发布下一代Windows(可能是Windows 12)&#xff0c;这也使得23H2成为Windows 11的最后一个重大更新。 此次更新的重点就是AI功能&a…...

pandas教程:Reading and Writing Data in Text Format (以文本格式读取和写入数据)

文章目录 Chapter 6 Data Loading, Storage, and File Formats&#xff08;数据加载&#xff0c;存储&#xff0c;文件格式&#xff09;6.1 Reading and Writing Data in Text Format (以文本格式读取和写入数据)1 Reading Text Files in Pieces&#xff08;读取一部分文本&…...

软考高级系统架构设计师系列之:软考高级系统架构设计师论文专题

软考高级系统架构设计师系列之:软考高级系统架构设计师论文专题 一、论文相关内容二、论文专题大纲三、论文考试方式四、历年真题汇总分析五、论文常见问题六、论文评分标准七、搭建论文万能模版八、论文万能模版公式九、搭建论文万能模版—摘要十、搭建论文万能模版—背景十一…...

目标检测中的评价指标

目标检测中的评价指标 将检测目标分为正样本和负样本。 真阳性&#xff08;true positives , TP&#xff09; : 正样本被正确识别为正样本。 假阳性&#xff08;false positives, FP&#xff09;: 负样本被错误识别为正样本。 假阴性&#xff08;false negatives, FN&#…...

【AI编程】ai编程插件汇总iFlyCode、codegeex

1、iFlyCode 开发公司&#xff1a;讯飞 支持IDE: VS Code、IntelliJ IDEA、CLion、PyCharm、WebStorm 支持语言: Python、JavaScript、C、Java 下载地址&#xff1a;https://iflycode.xfyun.cn/ iFlyCode 快捷键列表&#xff1a;  Tab 采纳建议  Esc 拒绝建议  Alt\ 主动…...

算法通关村第八关|黄金挑战|二叉树的最近公共祖先

二叉树的最近公共祖先 找p和q就行&#xff0c;找不到p和q的节点就返回null&#xff0c;找到的就层层返回p或q&#xff0c;其他的还是返回null。直到某一层的left和right都不为null说明得到了最近公共节点&#xff0c;再将这个节点层层返回。如果p和q存在祖先和子节点的关系&am…...

亚马逊云科技产品测评』活动征文|通过使用Amazon Neptune来预测电影类型初体验

文章目录 福利来袭Amazon Neptune什么是图数据库为什么要使用图数据库什么是Amazon NeptuneNeptune 的特点 快速入门环境搭建notebook 图神经网络快速构建加载数据配置端点Gremlin 查询清理 删除环境S3 存储桶删除 授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转…...

【获奖论文】2023年数学建模国赛优秀获奖论文

论文篇幅过长&#xff0c;本文仅展示少部分&#xff1b;共计14篇完整PDF获奖论文。 关注在微信公众号&#xff1a;数学建模BOOM&#xff0c;回复“2023国赛”获取。 注意&#xff01;是在公众号回复&#xff0c;不是在b站。 优秀论文部分内容展示&#xff1a; 更多A~E题的完…...

美团三年,总结的10条血泪教训

在美团的三年多时光&#xff0c;如同一部悠长的交响曲&#xff0c;高高低低&#xff0c;而今离开已有一段时间。闲暇之余&#xff0c;梳理了三年多的收获与感慨&#xff0c;总结成10条&#xff0c;既是对过去一段时光的的一个深情回眸&#xff0c;也是对未来之路的一份期许。 …...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...