龙空技术网

阿里最受欢迎的20个开源项目

Echa攻城狮 3474

前言:

当前你们对“淘宝开源代码”都比较注重,小伙伴们都想要剖析一些“淘宝开源代码”的相关知识。那么小编同时在网络上搜集了一些有关“淘宝开源代码””的相关知识,希望同学们能喜欢,小伙伴们快快来了解一下吧!

大家好,我是Echa。

说到阿里,作为程序员的小编不得不说阿里的达摩院,也就在上周阿里的达摩院又出新科技出来了,友友们猜猜是啥?又看到网传的消息,没错,那就是阿里版ChatGPT(通义千问),内部消息阿里版ChatGPT( 通义千问)预计4月11号面世大众,但现在看申请通义千问内测申请入口已经关闭了,只有邀请码入口了。到时候小编有空给大家出一期。先说说阿里最受欢迎的20个开源项目这个事情。

上周四,小编整理了一篇关于阿里最受欢迎前端开源项目:《阿里最受欢迎的16个前端开源项目》,广受友友们欢迎,有兴趣的可以看看。甚至还有好多友友私信小编强力要求出一期阿里最受欢迎的后端开源项目,你们这是给小编我出难题。但是庆幸的是,小编这点人脉还是有的,在圈内问到了一些,再结合小编平时养成爱收集的良好习惯。

今天小编整理一起分享阿里最受欢迎的20个开源项目,希望给友友们有所帮助,同时祝福友友们身体健健康康、事业蒸蒸日上、财源滚滚而来、日子红红火火、万事顺顺利利。

通义千问官网:

通义千问官网

全文大纲arthas-是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。fastjson - 是一个 Java 库,可将 Java 对象转换为其 JSON 表示形式。druid-是一款强大的数据库连接池spring-cloud-alibaba- 微服务开发一站式解决方案,可以帮助阿里巴巴开源中间件与 Spring Cloud 体系更好的融合sofa-boot-蚂蚁金服团队开源的基于 Spring Boot 的研发框架dubbo-是阿里巴巴的一款高性能、轻量级的开源 Java RPC框架,可以和 Spring 框架无缝集成。easyexcel-easyexcel 重写了 poi 对 07 版 Excel 的解析,大大降低了内存功耗。nginx-book-Nginx 开发从入门到精通sofa-rpc-高性能 Java RPC 框架。p3c-java 代码规约扫描插件,IntelliJ IDEA 搜索这款插件安装,时刻监控你写的代码规不规范。AliSQL-开源数据库,适合电商、云计算以及金融等行业环境。oceanbase-分布式数据库fastdfs-分布式文件系统 。rocketmq-RocketMQ 是一款分布式、队列模型的消息中间件。Metamorphosis-分布式消息中间件。这是一个高性能、高可用、可扩展的分布式消息中间件。tengine-淘宝 Web 服务器。在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。canal-阿里巴巴 MySQL binlog 增量订阅&消费组件otter-阿里巴巴分布式数据库同步系统(解决中美异地机房)GraphScope-阿里巴巴的一站式大规模图计算系统 图分析 图查询 图机器学习SREWorks-云原生数智运维平台x-render-阿里 - 很易用的中后台「表单 / 表格 / 图表」解决方案arthas

官网:

Github:

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

背景

通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。

开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。

如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。

Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么办法可以监控到JVM的实时运行状态?怎么快速定位应用的热点,生成火焰图?怎样直接从JVM内查找某个类的实例?

具体如下图:

arthas 官网

fastjson

Github:github.com/alibaba/fastjson

fastjson 是一个 Java 库,可将 Java 对象转换为其 JSON 表示形式。它也可以用于将 JSON 字符串转换为等效的 Java 对象。

相对其他 JSON 库,fastjson 的优点是快,从 2011 年 fastjson 发布第一个版本后,其性能从未被其他 JSON 库超越。

由于是阿里开源,fastjson 在阿里巴巴内部大规模使用,在数万台服务器上部署。fastjson 在业界也被广泛接受。曾经被开源中国评选为最受欢迎的国产开源软件之一。

Fastjson目标

在服务器端和安卓客户端上提供最佳性能提供简单的toJSONString()和parseObject()方法将Java对象转换为JSON,反之亦然允许将预先存在的不可修改对象转换为JSON和从JSON转换对Java泛型的广泛支持允许对象的自定义表达支持任意复杂的对象(具有深度继承层次结构和广泛使用泛型类型)

具体如下图:

druid

Github:

Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。

maven central repository 

Maven 依赖

<dependency>     <groupId>com.alibaba</groupId>     <artifactId>druid</artifactId>     <version>1.1.12</version></dependency>

Gradle

compile group: 'com.alibaba', name: 'druid', version: '1.1.12'

具体如下图:

spring-cloud-alibaba

官网:

Github:

Spring Cloud阿里巴巴为分布式应用程序开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud开发应用程序。

使用Spring Cloud Alibaba,您只需添加一些注释和少量配置即可将Spring Cloud应用程序连接到阿里巴巴的分布式解决方案,并使用阿里巴巴中间件构建分布式应用系统。

特性

流量控制和服务降级:使用Alibaba Sentinel进行流量控制、断路和系统自适应保护服务注册和发现:可以向Alibaba Nacos注册实例,客户端可以使用Spring托管bean发现实例。通过Spring Cloud Netflix支持Ribbon客户端负载均衡器分布式配置:使用Alibaba Nacos作为数据存储事件驱动:构建与Spring Cloud Stream RocketMQ Binder连接的高度可扩展的事件驱动微服务消息总线:通过Spring Cloud Bus RocketMQ连接分布式系统的节点分布式事务:支持Seata的高性能、易用的分布式事务解决方案Dubbo RPC:将Spring Cloud服务的通信协议扩展到Apache Dubbo的服务调用

具体如下图:

sofa-boot

官网:

Github:

SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,上下文隔离,类隔离,日志空间隔离等等能力。

再增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。

功能描述

SOFABoot 在 Spring Boot 基础上,提供了以下能力:

扩展 Spring Boot 健康检查的能力:在 Spring Boot 健康检查能力基础上,提供了 Readiness Check 的能力,保证应用实例安全上线。提供模块化开发的能力:基于 Spring 上下文隔离提供模块化开发能力,每个 SOFABoot 模块使用独立的 Spring 上下文,避免不同 SOFABoot 模块间的 BeanId 冲突。增加模块并行加载和 Spring Bean 异步初始化能力,加速应用启动;增加日志空间隔离的能力:中间件框架自动发现应用的日志实现依赖并独立打印日志,避免中间件和应用日志实现绑定,通过 sofa-common-tools 实现。增加类隔离的能力:基于 SOFAArk 框架提供类隔离能力,方便使用者解决各种类冲突问题。增加中间件集成管理的能力:统一管控、提供中间件统一易用的编程接口、每一个 SOFA 中间件都是独立可插拔的组件。提供完全兼容 Spring Boot的能力:SOFABoot 基于 Spring Boot 的基础上进行构建,并且完全兼容 Spring Boot。

具体如下图:

dubbo

官网:

Github:

ApacheDubbo是一个基于Java的高性能开源RPC框架。请访问官方网站以获取快速入门指南和文档,以及wiki以获取新闻、常见问题解答和发布说明。

我们现在正在收集Dubbo用户信息,以帮助我们进一步改进Dubbo。

系统架构

特征

基于透明接口的RPC智能负载平衡自动服务注册和发现高扩展性运行时流量路由可视化的服务治理

具体如下图:

easyexcel-easyexcel

官网:

Github:

JAVA解析Excel工具

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。

easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便

具体如下图:

nginx-book

官网:

Github:

nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发和它的内部原理,但是国内却没有一本关于这方面的书,源于此我们决定自己来写一本。本书的作者为淘宝核心系统服务器平台组的成员,本书写作的思路是从模块开发逐渐过渡到nginx原理剖析。书籍的内容会定期在这里更新,欢迎大家提出宝贵意见,不管是本书的内容问题,还是字词错误,都欢迎大家提交issue(章节标题的左侧有评注按钮),我们会及时的跟进。

如下图:

sofa-rpc

官网:

Github:

SOFARPC 是蚂蚁金服开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁金服所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。

SOFARPC 还支持不同的协议,目前包括 bolt,RESTful,dubbo,H2C 协议进行通信。其中 bolt 是蚂蚁金融服务集团开放的基于 Netty 开发的网络通信框架。

基本原理

当一个 SOFARPC 的应用启动的时候,如果发现当前应用需要发布 RPC 服务的话,那么 SOFARPC 会将这些服务注册到服务注册中心上。如图中 Service 指向 Registry。当引用这个服务的 SOFARPC 应用启动时,会从服务注册中心订阅到相应服务的元数据信息。服务注册中心收到订阅请求后,会将发布方的元数据列表实时推送给服务引用方。如图中 Registry 指向 Reference。当服务引用方拿到地址以后,就可以从中选取地址发起调用了。如图中 Reference 指向 Service。

如下图:

p3c

Github:

我们很高兴向您介绍《阿里巴巴Java编码指南》,该指南整合了阿里巴巴集团技术团队多年来的最佳编程实践。大量的Java编程团队对项目中的代码质量提出了苛刻的要求,因为我们鼓励重用和更好地理解彼此的程序。我们在过去看到过许多编程问题。例如,有缺陷的数据库表结构和索引设计可能会导致软件体系结构缺陷和性能风险。另一个例子是难以维护的令人困惑的代码结构。此外,没有身份验证的易受攻击的代码容易受到黑客的攻击。为了解决这些问题,我们为阿里巴巴的Java开发人员开发了本文档。

如下图:

AliSQL

Github:

AliSQL是一个源于阿里巴巴集团的MySQL分支。它基于MySQL官方版本,具有许多功能和性能增强。AliSQL已被证明在生产环境中非常稳定和高效。它可以作为MySQL的免费、完全兼容、增强和开源的插件替换。

AliSQL自2016年8月以来一直是一个开源项目。阿里巴巴集团的工程师正在积极开发。此外,它还包括来自Percona、WebScaleSQL和MariaDB的补丁。AliSQL是社区努力的成果。欢迎大家参与进来。

如下图:

oceanbase

官网:

Github:

OceanBase是由蚂蚁金服、阿里巴巴完全自主研发的金融级分布式关系数据库,始创于2010年。OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特点。OceanBase至今已成功应用于支付宝全部核心业务:交易、支付、会员、账务等系统以及阿里巴巴淘宝(天猫)收藏夹、P4P广告报表等业务。除在蚂蚁金服和阿里巴巴业务系统中获广泛应用外,从2017年开始,OceanBase开始服务外部客户,客户包括南京银行、西安银行、印度Paytm、人保健康险等。

如下图:

fastdfs

官网:

Github:

FastDFS只能根据GNU通用公共许可证V3的条款进行复制,该许可证可以在FastDFS源工具包中找到。有关更多详细信息,请访问FastDFS主页。中文:

FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),可以解决高容量和负载平衡问题。FastDFS应满足其服务基于文件的网站的要求,如照片共享网站和视频共享网站。

FastDFS有两个角色:跟踪器和存储。跟踪器负责文件访问的调度和负载平衡。存储器存储文件,其功能是文件管理,包括:文件存储、文件同步、提供文件访问接口。它还管理元数据,这些元数据是表示为文件的键值对的属性。例如:width=1024,键为“width”,值为“1024”。

跟踪器和存储器包含一个或多个服务器。跟踪器或存储集群中的服务器可以随时添加到集群或从集群中删除,而不会影响在线服务。跟踪器集群中的服务器是对等的。

按文件卷/组组织以获得高容量的存储服务器。存储系统包含一个或多个卷,这些卷中的文件是独立的。整个存储系统的容量等于所有卷的容量之和。文件卷包含一个或多个存储服务器,这些服务器之间的文件相同。文件卷中的服务器相互备份,并且所有这些服务器都是负载平衡的。将存储服务器添加到卷中时,该卷中已存在的文件会自动复制到此新服务器,并且在复制完成后,系统会将此服务器联机切换为提供存储服务。

如下图:

rocketmq

官网:

Github:

Apache RocketMQ是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。

它提供了多种功能:

消息模式,包括发布/订阅、请求/回复和流式传输财务级交易消息基于DLedger控制器的内置容错和高可用性配置选项内置消息跟踪功能,还支持开放跟踪多功能大数据和流媒体生态系统集成按时间或偏移量的邮件追溯力可靠的FIFO和同一队列中严格有序的消息传递高效的推拉式消费模式单个队列中的百万级消息累积容量多种消息传递协议,如gRPC、MQTT、JMS和OpenMessaging灵活的分布式扩展部署体系结构闪电式快速批量消息交换系统各种消息过滤机制,如SQL和Tag用于隔离测试和云隔离集群的Docker镜像功能丰富的管理仪表板,用于配置、度量和监控身份验证和授权免费的开源连接器,适用于源和接收器轻量级实时计算

如下图:

Metamorphosis

Github:

Metamorphosis是淘宝开源的一个Java消息中间件,他类似apache-kafka,但不是一个简单的山寨拷贝,而是做了很多改进和优化,项目的主页在淘蝌蚪上。

这是MetaQ的一个github分支,我做了部分优化和改进,并将meta发布到maven central repository,还做了一些wiki文档,我能承诺的是我个人会持续维护本项目。

MetaQ的淘宝版本已经发展到2.0乃至3.0版本,设计原则发生了变更,有兴趣的可以上它的官方网站看。

本分支应用在京东,支付宝,腾讯等公司的产品上。

如下图:

tengine

官网:

Github:

Tengine是一款由亚洲最大的电子商务网站淘宝发起的网络服务器。它基于Nginx HTTP服务器,并具有许多高级功能。Tengine在包括淘宝网和天猫网在内的世界100强网站上已经被证明是非常稳定和高效的。

Tengine自2011年12月以来一直是一个开源项目。Tengine团队正在积极开发,其核心成员来自淘宝、搜狗和其他互联网公司。Tengine是一个社区的努力,鼓励每个人都参与进来。

特性

继承Nginx-1.18.0的所有特性,兼容Nginx的配置;支持HTTP的CONNECT方法,可用于正向代理场景;支持异步OpenSSL,可使用硬件如:QAT进行HTTPS的加速与卸载;增强相关运维、监控能力,比如异步打印日志及回滚,本地DNS缓存,内存监控等;Stream模块支持server_name指令;更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数;动态脚本语言Lua支持。扩展功能非常高效简单;支持按指定关键字(域名,url等)收集Tengine运行状态;组合多个CSS、JavaScript文件的访问请求变成一个请求;自动去除空白字符和注释从而减小页面的体积自动根据CPU数目设置进程个数和绑定CPU亲缘性;监控系统的负载和资源占用从而对系统进行保护;显示对运维人员更友好的出错信息,便于定位出错机器;;更强大的防攻击(访问速度限制)模块;更方便的命令行参数,如列出编译的模块列表、支持的指令等;支持Dubbo协议;可以根据访问文件类型设置过期时间;

如下图:

otter

Github:

环境搭建 & 打包

环境搭建:

进入 $otter_home/lib 目录执行:bash install.sh

打包:

进入$otter_home目录执行:mvn clean install -Dmaven.test.skip -Denv=release发布包位置:$otter_home/target

项目背景

阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otter4。

目前同步规模:

同步数据量6亿文件同步1.5TB(2000w张图片)涉及200+个数据库实例之间的同步80+台机器的集群规模

工作原理

原理描述:

1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击

2. 典型管理系统架构,manager(web管理)+node(工作节点)

a. manager运行时推送同步配置到node节点

b. node节点将同步状态反馈到manager上

3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

如下图:

GraphScope

官网:

Github:

背景

2008年,阿里巴巴开始尝试使用 MySQL 支撑其业务,开发了围绕 MySQL 相关的中间件和工具,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机 Oracle 无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle 数据迁移到 MySQL 上,完成去 IOE 的重要一步工作。

GraphScope是一个统一的分布式图形计算平台,通过用户友好的Python接口,为在计算机集群上执行各种图形操作提供了一站式环境。GraphScope结合了阿里巴巴的几项重要技术,简化了计算集群上大规模图形数据的多阶段处理:包括分别用于分析、交互和图形神经网络(GNN)计算的GRAPE、MaxGraph和graph Learn(GL),以及提供高效内存数据传输的葡萄园存储。

如下图:

SREWorks

官网:

Github:

SREWorks 专注于以应用为中心的开发模式,提供一站式云原生数智化运维SaaS(软件即服务)管理套件。支撑企业的应用及资源管理和运维开发两大核心能力,帮助企业快速实现云原生应用及资源的交付目标。

SREWorks 是什么?

谷歌在2003年提出了一种岗位叫做 SRE (Site Reliability Engineer,站点可靠性工程师),它是软件工程师和系统管理员的结合,重视运维人员的开发能力,要求运维日常琐事在50%以内,另外50%精力开发自动化工具减少人力需求。

SREWorks 作为阿里云大数据SRE团队对SRE理念的工程实践,专注于以应用为中心的一站式“云原生”、“数智化”运维 SaaS 管理套件,提供企业应用&资源管理及运维开发两大核心能力,帮助企业实现云原生应用&资源的交付运维。

阿里云大数据 SRE 团队天然靠近大数据和AI,对大数据&AI技术非常熟悉,且具有随取随用的大数据&AI算力资源,一直努力践行“数据化”、“智能化”的运维理念,行业里的 DataOps(数据化运维)最早由该团队提出。SREWorks 中有一套端到端的 DataOps 闭环工程化实践,包括标准的运维数仓、数据运维平台、运营中心等。

传统IT运维领域已经有大量优秀的开源运维平台,反观云原生场景,目前还缺乏一些体系化的运维解决方案。随着云原生时代大趋势的到来,阿里云大数据 SRE 团队将SREWorks运维平台开源,希望为运维工程师们提供开箱即用的运维平台。

SREWorks 有什么优势?

回归到运维领域的需求,无论上层产品和业务形态怎么变化,运维本质上解决的还是“质量、成本、效率、安全”相关需求。SREWorks 用一个运维 SaaS 应用界面来支撑上述需求,同时以“数智”思想为内核驱动 SaaS 能力,具体包括交付、监测、管理、控制、运营、服务六部分。

如下图:

x-render

官网:

Github:

阿里 - 很易用的中后台「表单 / 表格 / 图表」解决方案

优势

FormRender:像写一个 input 一样写表单TableRender:协议生成 & 高度灵活的搜索列表ChartRender:傻瓜式的图表绘制库FormGenerator:中后台表单可视化搭建生成利器

如下图:

最后

一台电脑,一个键盘,尽情挥洒智慧的人生;几行数字,几个字母,认真编写生活的美好;

一 个灵感,一段程序,推动科技进步,促进社会发展。

创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。

标签: #淘宝开源代码 #阿里开源分布式数据库