前言 眾所周知,阿里巴巴是 apache基金會成員、Linux基金會成員,同時是Xen顧問委員會成員。上述身份可見阿里在開源方面的重視程度,阿里通過開源貢獻更多技術、分享更多理念。其開源的很多項目大受歡迎,今日就來盤點阿里29個開源項目,你用過幾個,哪個最好用,歡迎在留言區告訴小編。 Spring Cloud Alibaba 致力於提供分散式應用服務開發的一站式解決方案。此項目包含開發分散式應用服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分散式應用服務。 依託 Spring Cloud Alibaba,您只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里分散式應用解決方案,通過阿里中間件來迅速搭建分散式應用系統。 地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba Ant Design 是螞蟻金服開發和正在使用的一套企業級的前端設計語言和基於 React 的前端框架實現。 它的特性:企業級金融產品的交互語言和視覺體系;豐富實用的 React UI 組件;基於 React 的組件化開發模式;背靠 npm 生態圈;基於 webpack 的調試構建方案,支持 ES6。 地址:https://github.com/ant-design/ant-design Druid是一個 JDBC 組件。 1.監控資料庫訪問性能。 2.提供了一個高效、功能強大、可擴展性好的資料庫連接池。 3.資料庫密碼加密。 4.SQL執行日誌。 地址:https://github.com/alibaba/druid fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。 主要特點:快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson);強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum);零依賴(沒有依賴其它任何類庫除了JDK)。 地址:https://github.com/alibaba/fastjson Apache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向介面的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。 地址:https://github.com/alibaba/dubbo JStorm 是參考 Apache Storm 實現的實時流式計算框架,在網路IO、線程模型、資源調度、可用性及穩定性上做了持續改進,已被越來越多企業使用。JStorm 可以看作是 storm 的 java 增強版本,除了內核用純java實現外,還包括了thrift、python、facet ui。從架構上看,其本質是一個基於 zk 的分散式調度系統。 地址:https://github.com/alibaba/jstorm apns4j 是 Apple Push Notification Service 的 Java 實現。 地址:https://github.com/teaey/apns4j G2 是一套基於可視化編碼的圖形語法,以數據驅動,具有高度的易用性和擴展性,用戶無需關注各種繁瑣的實現細節,一條語句即可構建出各種各樣的可交互的統計圖表。 同時,G2 也是 AntV 最重要的組成,始於《The Grammar of Graphics》一書描述的視覺編碼語法系統(這也是 G2 項目命名的由來)。 項目地址:https://github.com/antvis/g2 Dawn 取「黎明、破曉」之意,原為「阿里雲·業務運營團隊」內部的前端構建和工程化工具,現已完全開源。 它通過 pipeline 和 middleware 將開發過程抽象為相對固定的階段和有限的操作,簡化並統一了開發人員的日常構建與開發相關的工作。 地址:https://alibaba.github.io/dawn/ TDDL 是一個基於集中式配置的 jdbc datasource實現,具有主備,讀寫分離,動態資料庫配置等功能。 地址:https://github.com/alibaba/tb_tddl Cobar Client是一個輕量級分散式數據訪問層(DAL)基於iBatis(已更名為MyBatis)和Spring框架實現。 地址:https://github.com/alibaba/cobarclient TaobaoJVM 基於 OpenJDK HotSpot VM,是國內第一個優化、定製且開源的伺服器版Java虛擬機。目前已經在淘寶、天貓上線,全部替換了Oracle官方JVM版本,在性能,功能上都初步體現了它的價值。 地址:http://jvm.taobao.org SimpleImage是阿里巴巴的一個Java圖片處理的類庫,可以實現圖片縮略、水印等處理。 地址:https://github.com/alibaba/simpleimage Tedis 是另一個 redis 的 java 客戶端。Tedis 的目標是打造一個可在生產環境直接使用的高可用 Redis 解決方案。 地址:https://github.com/justified/tedis Arthas(阿爾薩斯)是阿里巴巴開源的 Java 診斷工具,深受開發者喜愛。 Arthas 採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。 地址:https://alibaba.github.io/arthas/ Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您實現動態服務發現、服務配置管理、服務及流量管理。 Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平台。Nacos 是構建以「服務」為中心的現代應用架構(例如微服務範式、雲原生範式)的服務基礎設施。 地址:https://nacos.io/en-us/ 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 Sentinel 是面向微服務的輕量級流量控制框架,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。 只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護起來。大部分情況下,可以使用方法簽名,URL,甚至服務名稱作為資源名來標示資源。 地址:https://github.com/alibaba/Sentinel Lookout 是一個利用多維度的 metrics 對目標系統進行度量和監控的項目。Lookout 的多維度 metrics 參考 Metrics 2.0 標準。Lookout 項目分為客戶端部分與伺服器端部分。 客戶端是一個 Java 的類庫,可以將它植入您的應用代碼中採集 metrics 信息,客戶端更多詳情。 服務端代碼部分,將於下一版本提供。通過 LOOKOUT 的服務,可以對 metrics 數據進行收集、加工、存儲和查詢等處理,另外結合 grafana,可做數據可視化展示。 地址:https://github.com/alipay/sofa-lookout SOFABoot 是螞蟻金服開源的基於 Spring Boot 的研發框架,它在 Spring Boot 的基礎上,提供了諸如 Readiness Check,類隔離,日誌空間隔離等等能力。在增強了 Spring Boot 的同時,SOFABoot 提供了讓用戶可以在 Spring Boot 中非常方便地使用 SOFAStack 相關中間件的能力。 地址:https://github.com/alipay/sofa-boot SOFAArk 是一款基於 Java 實現的輕量級類隔離容器,由螞蟻金服公司開源貢獻;主要為應用程序提供類隔離和依賴包隔離的能力;基於 Fat Jar 技術,應用可以被打包成一個自包含可運行的 Fat Jar,應用既可以是簡單的單模塊 Java 應用也可以是 Spring Boot 應用。可訪問網址進入快速開始並獲取更多詳細信息。 地址:https://alipay.github.io/sofastack.github.io/ SOFATracer 是一個用於分散式系統調用跟蹤的組件,通過統一的 traceId 將調用鏈路中的各種網路調用情況以日誌的方式記錄下來,以達到透視化網路調用的目的。這些日誌可用於故障的快速發現,服務治理等。 地址:https://github.com/alipay/sofa-tracer SOFARPC 是一個高可擴展性、高性能、生產級的 Java RPC 框架。在螞蟻金服 SOFARPC 已經經歷了十多年及五代版本的發展。SOFARPC 致力於簡化應用之間的 RPC 調用,為應用提供方便透明、穩定高效的點對點遠程服務調用方案。為了用戶和開發者方便的進行功能擴展,SOFARPC 提供了豐富的模型抽象和可擴展介面,包括過濾器、路由、負載均衡等等。同時圍繞 SOFARPC 框架及其周邊組件提供豐富的微服務治理方案。 地址:https://github.com/alipay/sofa-rpc SOFABolt 是螞蟻金融服務集團開發的一套基於 Netty 實現的網路通信框架。 為了讓 Java 程序員能將更多的精力放在基於網路通信的業務邏輯實現上,而不是過多的糾結於網路底層 NIO 的實現以及處理難以調試的網路問題,Netty 應運而生。 為了讓中間件開發者能將更多的精力放在產品功能特性實現上,而不是重複地一遍遍製造通信框架的輪子,SOFABolt 應運而生。 地址:https://github.com/alipay/sofa-bolt JVM-Sandbox,JVM 沙箱容器,一種基於 JVM 的非侵入式運行期 AOP 解決方案。 地址:https://github.com/alibaba/jvm-sandbox OpenMessaging 是由阿里巴巴發起,與雅虎、滴滴出行、Streamlio 公司共同參與創立,旨在創立廠商無關、平台無關的分散式消息及流處理領域的應用開發標準。 地址:https://github.com/openmessaging/openmessaging-java Dragonfly(蜻蜓)是阿里自研的 P2P 文件分發系統,用於解決大規模文件分發場景下分發耗時、成功率低、帶寬浪費等難題。大幅提升發布部署、數據預熱、大規模容器鏡像分發等業務能力。 開源版的 Dragonfly 可用於 P2P 文件分發、容器鏡像分發、局部限速、磁碟容量預檢等。它支持多種容器技術,對容器本身無需做任何改造,鏡像分發比 natvie 方式提速可高達 57 倍,Registry 網路出流量降低99.5%以上。 地址:https://github.com/alibaba/Dragonfly VirtualLayout是一個針對RecyclerView的LayoutManager擴展, 主要提供一整套布局方案和布局間的組件復用的問題。 地址:https://github.com/alibaba/vlayout 項目包含三部分:PMD 實現、IntelliJ IDEA 插件、Eclipse 插件 地址:https://github.com/alibaba/p3c1. 分散式應用服務開發的一站式解決方案 Spring Cloud Alibaba
2. 設計語言 & 前端框架 Ant Design
3. JDBC 連接池、監控組件 Druid
4. Java 的 JSON 處理器 fastjson
5. 服務框架 Dubbo
6. 企業級流式計算引擎 JStorm
7. apns4j
8. 數據驅動的高交互可視化圖形語法 AntV – G2
9. 前端構建和工程化工具 Dawn
10. 分散式數據層 TDDL
11. 輕量級分散式數據訪問層 CobarClient
12. 淘寶定製 JVM:TaobaoJVM
13. Java 圖片處理類庫 SimpleImage
14. Redis 的 Java 客戶端 Tedis
15. 開源 Java 診斷工具 Arthas
16. 動態服務發現、配置和服務管理平台 Nacos
17. Java 解析 Excel 工具 easyexcel
18. 高可用流量管理框架 Sentinel
19. 基於多維度 Metrics 的系統度量和監控中間件 SOFALookout
20. 基於 Spring Boot 的研發框架 SOFABoot
21. 輕量級 Java 類隔離容器 SOFAArk
22. 分散式鏈路追蹤中間件 SOFATracer
23. 高性能 Java RPC 框架 SOFARPC
24. 基於 Netty 的網路通信框架 SOFABolt
25. 動態非侵入 AOP 解決方案 JVM-Sandbox
26. 面向雲的分散式消息領域標準 OpenMessaging
27. P2P 文件分發系統 Dragonfly
28. LayoutManager 定製化布局方案 vlayout
29. Java 代碼規約掃描插件 P3C