很久以前,国外的互联网技术一直让中国相其望背,但是近几年来随着中国互联的公司的崛起,一批中国核心的技术已逐渐在世界崭露头角,比较有代表性的就是阿里, 百度 , 腾讯 , 京东 , 网易 等互联网巨头的开源作品。
今天鹏哥就带大家了解一下阿里的开源作品到底有哪些?打开阿里的 github 页面,吓了鹏哥一大跳,阿里开源的库竟然有279个之多,兼职就是程序猿界的慈善家,但是为什么鹏哥了解的就那么几个呢?这其实是鹏哥一直做后端 Java 开发, 所以了解的只有自己工作相关的库,所以只有那么几个。像今天鹏哥给大家介绍的就是阿里的云原生大礼包。

鹏哥简单罗列了一下, 阿里云 云生大礼包包括了一下几个开源工程:
- Dubbo
- RocketMq
- Sentinel
- Nacos
- Arthas
- Seata
- Chaosblade
Dubbo
项目地址:
一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的 远程方法调用 ,智能容错和负载均衡,以及服务自动注册和发现。

RocketMq
项目地址:
源的 分布式 消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。另外值得一提的是RocketMq是阿里开源加入Apache基金会第一个被选为顶级的项目。
具有以下特点:
- 能够保证严格的消息顺序
- 提供丰富的消息拉取模式
- 高效的订阅者水平扩展能力
- 实时的消息订阅机制
- 亿级消息堆积能力
- Metaq3.0 版本改名,产品名称改为RocketMQ

Sentinel
项目地址:
Sentinel 是面向 微服务 的轻量级 流量控制 框架,从流量控制、 熔断 降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 具有以下特征:
- 丰富的应用场景:Sentinel 承接了 阿里巴巴 近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
- 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
- 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
- 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

Nacos
项目地址:
Nacos 通过提供简单易用的动态服务发现、服务配置、服务共享与管理等服务基础设施,帮助用户在云原生时代,在 私有云 、 混合云 或者公有云等所有云环境中,更好的构建、交付、管理自己的微服务平台,更快的复用和组合业务服务,更快的交付商业创新的价值,从而为用户赢得市场。

Arthas
项目地址:
Arthas(阿尔萨斯)是 阿里巴巴 开源的 Java 诊断工具,深受开发者喜爱。
- 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug ,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到 JVM 的实时运行状态?
- Arthas 采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

Seata
项目地址:
Seata 融合了 阿里巴巴 和蚂蚁金服在 分布式事务 技术上的积累,并沉淀了新零售、云计算和新金融等场景下丰富的实践经验,但要实现适用于所有的分布式事务场景的愿景,仍有很长的路要走。因此,我们决定建立一个完全中立的分布式事务组织,希望更多的企业、开发者能够加入我们,一起打造 Seata。

Chaosblade
项目地址:
ChaosBlade 是 阿里巴巴 开源的一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,可实现底层故障的注入,特点是操作简洁、无侵入、扩展性强。
ChaosBlade 基于 Apache License v2.0 开源协议,目前有 chaosblade 和 chaosblade-exe-jvm 两个仓库。其中,Chaosblade 包含 CLI 和使用 Golang 实现的基础资源、容器相关的混沌实验实施执行模块。chaosblade-exe-jvm 是对运行在 JVM 上的应用实施混沌实验的 执行器 。
ChaosBlade 社区后续还会添加 C++、Node.js 等其他语言的混沌实验执行器。

鹏哥据对没想到 阿里巴巴 不只是开源架构和工具库,竟然模拟故障都有开源项目,这兼职是程序猿的福音,有了他宝宝再也不怕程序猿被拉出去祭天了。