阿里开源中间件一览

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 阿里开源中间件一览

1. 概述以及竞品对比

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

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

链接:gRPC

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

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

链接:HikariCP

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

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

Consul链接:Consul

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

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

Hadoop HDFS链接:Hadoop HDFS

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

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

链接:ShardingSphere

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

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

链接:ElasticSearch

阿里Havenask和es都是用于搜索和检索数据的技术,能处理大规模数据并支持高并发搜索和查询操作。

ES适用于大规模数据搜索和分析场景,而阿里Havenask则更侧重于电商领域的搜索和推荐场景,并与阿里生态系统深度结合。

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月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
7月前
|
缓存 监控 NoSQL
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
152 0
|
9月前
|
运维 监控 安全
开源中间件的难度
开源中间件的难度
111 0
|
10月前
|
消息中间件 中间件 Kafka
限时开源!阿里内部消息中间件合集:MQ+Kafka+体系图+笔记
近好多小伙伴说在准备金三银四的面试突击了,但是遇到消息中间件不知道该怎么学了,问我有没有成体系的消息中间件的学习方式。 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了一些纯手绘知识体系图、面试以及相关的学习笔记。
209 1
|
10月前
|
消息中间件 负载均衡 监控
在Linux服务器上安装EMQX平台:构建高性能的开源物联网消息中间件
EMQX是一个开源的物联网消息中间件平台,提供高性能、高可用性的MQTT和CoAP协议支持,适用于大规模物联网应用场景。本文将详细介绍在Linux服务器上安装EMQ X平台的步骤,帮助开发者快速搭建功能强大的物联网消息中间件。
2473 1
|
10月前
|
NoSQL Java Redis
阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:
|
10月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
10月前
|
算法 NoSQL Java
2021年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
11月前
|
消息中间件 安全 Java
全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。
|
11月前
|
消息中间件 数据采集 Java
开发神技!阿里消息中间件进阶手册限时开源,请接住我的下巴
相信大家在实际工作中都用过消息中间件进行系统间数据交换,解决应用解耦、异步消息、流量削峰等问题,由此消息中间件的强大功能想必也不用我多说了!目前业界上关于消息中间件的实现多达好几十种,可谓百花齐放,所用的实现语言同样也五花八门。不管使用哪一个消息中间件,我们的目的都是实现高性能、高可用、可伸缩和最终一致性架构。