阿里巴巴 29 個屌炸天的開源項目!

前言

眾所周知,阿里巴巴是 apache基金會成員、Linux基金會成員,同時是Xen顧問委員會成員。上述身份可見阿里在開源方面的重視程度,阿里通過開源貢獻更多技術、分享更多理念。其開源的很多項目大受歡迎,今日就來盤點阿里29個開源項目,你用過幾個,哪個最好用,歡迎在留言區告訴小編。

1. 分散式應用服務開發的一站式解決方案 Spring Cloud Alibaba

Spring Cloud Alibaba 致力於提供分散式應用服務開發的一站式解決方案。此項目包含開發分散式應用服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分散式應用服務。

依託 Spring Cloud Alibaba,您只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里分散式應用解決方案,通過阿里中間件來迅速搭建分散式應用系統。

地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba

2. 設計語言 & 前端框架 Ant Design

Ant Design 是螞蟻金服開發和正在使用的一套企業級的前端設計語言和基於 React 的前端框架實現。

它的特性:企業級金融產品的交互語言和視覺體系;豐富實用的 React UI 組件;基於 React 的組件化開發模式;背靠 npm 生態圈;基於 webpack 的調試構建方案,支持 ES6。

地址:https://github.com/ant-design/ant-design

3. JDBC 連接池、監控組件 Druid

Druid是一個 JDBC 組件。

1.監控資料庫訪問性能。

2.提供了一個高效、功能強大、可擴展性好的資料庫連接池。

3.資料庫密碼加密。

4.SQL執行日誌。

地址:https://github.com/alibaba/druid

4. Java 的 JSON 處理器 fastjson

fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。

主要特點:快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson);強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum);零依賴(沒有依賴其它任何類庫除了JDK)。

地址:https://github.com/alibaba/fastjson

5. 服務框架 Dubbo

Apache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向介面的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

地址:https://github.com/alibaba/dubbo

6. 企業級流式計算引擎 JStorm

JStorm 是參考 Apache Storm 實現的實時流式計算框架,在網路IO、線程模型、資源調度、可用性及穩定性上做了持續改進,已被越來越多企業使用。JStorm 可以看作是 storm 的 java 增強版本,除了內核用純java實現外,還包括了thrift、python、facet ui。從架構上看,其本質是一個基於 zk 的分散式調度系統。

地址:https://github.com/alibaba/jstorm

7. apns4j

apns4j 是 Apple Push Notification Service 的 Java 實現。

地址:https://github.com/teaey/apns4j

8. 數據驅動的高交互可視化圖形語法 AntV – G2

G2 是一套基於可視化編碼的圖形語法,以數據驅動,具有高度的易用性和擴展性,用戶無需關注各種繁瑣的實現細節,一條語句即可構建出各種各樣的可交互的統計圖表。

同時,G2 也是 AntV 最重要的組成,始於《The Grammar of Graphics》一書描述的視覺編碼語法系統(這也是 G2 項目命名的由來)。

項目地址:https://github.com/antvis/g2

9. 前端構建和工程化工具 Dawn

Dawn 取「黎明、破曉」之意,原為「阿里雲·業務運營團隊」內部的前端構建和工程化工具,現已完全開源。

它通過 pipeline 和 middleware 將開發過程抽象為相對固定的階段和有限的操作,簡化並統一了開發人員的日常構建與開發相關的工作。

地址:https://alibaba.github.io/dawn/

10. 分散式數據層 TDDL

TDDL 是一個基於集中式配置的 jdbc datasource實現,具有主備,讀寫分離,動態資料庫配置等功能。

地址:https://github.com/alibaba/tb_tddl

11. 輕量級分散式數據訪問層 CobarClient

Cobar Client是一個輕量級分散式數據訪問層(DAL)基於iBatis(已更名為MyBatis)和Spring框架實現。

地址:https://github.com/alibaba/cobarclient

12. 淘寶定製 JVM:TaobaoJVM

TaobaoJVM 基於 OpenJDK HotSpot VM,是國內第一個優化、定製且開源的伺服器版Java虛擬機。目前已經在淘寶、天貓上線,全部替換了Oracle官方JVM版本,在性能,功能上都初步體現了它的價值。

地址:http://jvm.taobao.org

13. Java 圖片處理類庫 SimpleImage

SimpleImage是阿里巴巴的一個Java圖片處理的類庫,可以實現圖片縮略、水印等處理。

地址:https://github.com/alibaba/simpleimage

14. Redis 的 Java 客戶端 Tedis

Tedis 是另一個 redis 的 java 客戶端。Tedis 的目標是打造一個可在生產環境直接使用的高可用 Redis 解決方案。

地址:https://github.com/justified/tedis

15. 開源 Java 診斷工具 Arthas

Arthas(阿爾薩斯)是阿里巴巴開源的 Java 診斷工具,深受開發者喜愛。

Arthas 採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

地址:https://alibaba.github.io/arthas/

16. 動態服務發現、配置和服務管理平台 Nacos

Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您實現動態服務發現、服務配置管理、服務及流量管理。

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平台。Nacos 是構建以「服務」為中心的現代應用架構(例如微服務範式、雲原生範式)的服務基礎設施。

地址:https://nacos.io/en-us/

17. Java 解析 Excel 工具 easyexcel

Java 解析、生成 Excel 比較有名的框架有 Apache poi、jxl 。但他們都存在一個嚴重的問題就是非常的耗內存,poi 有一套 SAX 模式的 API 可以一定程度的解決一些內存溢出的問題,但 POI 還是有一些缺陷,比如 07 版 Excel 解壓縮以及解壓后存儲都是在內存中完成的,內存消耗依然很大。

easyexcel 重寫了 poi 對 07 版 Excel 的解析,能夠原本一個 3M 的 excel 用 POI sax 依然需要 100M 左右內存降低到 KB 級別,並且再大的 excel 不會出現內存溢出,03 版依賴 POI 的 sax 模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。

地址:https://github.com/alibaba/easyexcel

18. 高可用流量管理框架 Sentinel

Sentinel 是面向微服務的輕量級流量控制框架,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。

只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護起來。大部分情況下,可以使用方法簽名,URL,甚至服務名稱作為資源名來標示資源。

地址:https://github.com/alibaba/Sentinel

19. 基於多維度 Metrics 的系統度量和監控中間件 SOFALookout

Lookout 是一個利用多維度的 metrics 對目標系統進行度量和監控的項目。Lookout 的多維度 metrics 參考 Metrics 2.0 標準。Lookout 項目分為客戶端部分與伺服器端部分。

客戶端是一個 Java 的類庫,可以將它植入您的應用代碼中採集 metrics 信息,客戶端更多詳情。

服務端代碼部分,將於下一版本提供。通過 LOOKOUT 的服務,可以對 metrics 數據進行收集、加工、存儲和查詢等處理,另外結合 grafana,可做數據可視化展示。

地址:https://github.com/alipay/sofa-lookout

20. 基於 Spring Boot 的研發框架 SOFABoot

SOFABoot 是螞蟻金服開源的基於 Spring Boot 的研發框架,它在 Spring Boot 的基礎上,提供了諸如 Readiness Check,類隔離,日誌空間隔離等等能力。在增強了 Spring Boot 的同時,SOFABoot 提供了讓用戶可以在 Spring Boot 中非常方便地使用 SOFAStack 相關中間件的能力。

地址:https://github.com/alipay/sofa-boot

21. 輕量級 Java 類隔離容器 SOFAArk

SOFAArk 是一款基於 Java 實現的輕量級類隔離容器,由螞蟻金服公司開源貢獻;主要為應用程序提供類隔離和依賴包隔離的能力;基於 Fat Jar 技術,應用可以被打包成一個自包含可運行的 Fat Jar,應用既可以是簡單的單模塊 Java 應用也可以是 Spring Boot 應用。可訪問網址進入快速開始並獲取更多詳細信息。

地址:https://alipay.github.io/sofastack.github.io/

22. 分散式鏈路追蹤中間件 SOFATracer

SOFATracer 是一個用於分散式系統調用跟蹤的組件,通過統一的 traceId 將調用鏈路中的各種網路調用情況以日誌的方式記錄下來,以達到透視化網路調用的目的。這些日誌可用於故障的快速發現,服務治理等。

地址:https://github.com/alipay/sofa-tracer

23. 高性能 Java RPC 框架 SOFARPC

SOFARPC 是一個高可擴展性、高性能、生產級的 Java RPC 框架。在螞蟻金服 SOFARPC 已經經歷了十多年及五代版本的發展。SOFARPC 致力於簡化應用之間的 RPC 調用,為應用提供方便透明、穩定高效的點對點遠程服務調用方案。為了用戶和開發者方便的進行功能擴展,SOFARPC 提供了豐富的模型抽象和可擴展介面,包括過濾器、路由、負載均衡等等。同時圍繞 SOFARPC 框架及其周邊組件提供豐富的微服務治理方案。

地址:https://github.com/alipay/sofa-rpc

24. 基於 Netty 的網路通信框架 SOFABolt

SOFABolt 是螞蟻金融服務集團開發的一套基於 Netty 實現的網路通信框架。

為了讓 Java 程序員能將更多的精力放在基於網路通信的業務邏輯實現上,而不是過多的糾結於網路底層 NIO 的實現以及處理難以調試的網路問題,Netty 應運而生。

為了讓中間件開發者能將更多的精力放在產品功能特性實現上,而不是重複地一遍遍製造通信框架的輪子,SOFABolt 應運而生。

地址:https://github.com/alipay/sofa-bolt

25. 動態非侵入 AOP 解決方案 JVM-Sandbox

JVM-Sandbox,JVM 沙箱容器,一種基於 JVM 的非侵入式運行期 AOP 解決方案。

地址:https://github.com/alibaba/jvm-sandbox

26. 面向雲的分散式消息領域標準 OpenMessaging

OpenMessaging 是由阿里巴巴發起,與雅虎、滴滴出行、Streamlio 公司共同參與創立,旨在創立廠商無關、平台無關的分散式消息及流處理領域的應用開發標準。

地址:https://github.com/openmessaging/openmessaging-java

27. P2P 文件分發系統 Dragonfly

Dragonfly(蜻蜓)是阿里自研的 P2P 文件分發系統,用於解決大規模文件分發場景下分發耗時、成功率低、帶寬浪費等難題。大幅提升發布部署、數據預熱、大規模容器鏡像分發等業務能力。

開源版的 Dragonfly 可用於 P2P 文件分發、容器鏡像分發、局部限速、磁碟容量預檢等。它支持多種容器技術,對容器本身無需做任何改造,鏡像分發比 natvie 方式提速可高達 57 倍,Registry 網路出流量降低99.5%以上。

地址:https://github.com/alibaba/Dragonfly

28. LayoutManager 定製化布局方案 vlayout

VirtualLayout是一個針對RecyclerView的LayoutManager擴展, 主要提供一整套布局方案和布局間的組件復用的問題。

地址:https://github.com/alibaba/vlayout

29. Java 代碼規約掃描插件 P3C

項目包含三部分:PMD 實現、IntelliJ IDEA 插件、Eclipse 插件

地址:https://github.com/alibaba/p3c