2018年阿里巴巴關(guān)于Java重要開源項(xiàng)目匯總
1.分布式應(yīng)用服務(wù)開發(fā)的一站式解決方案 Spring Cloud Alibaba
Spring Cloud Alibaba 致力于提供分布式應(yīng)用服務(wù)開發(fā)的一站式解決方案。此項(xiàng)目包含開發(fā)分布式應(yīng)用服務(wù)的必需組件,方便開發(fā)者通過 Spring Cloud 編程模型輕松使用這些組件來開發(fā)分布式應(yīng)用服務(wù)。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以將 Spring Cloud 應(yīng)用接入阿里分布式應(yīng)用解決方案,通過阿里中間件來迅速搭建分布式應(yīng)用系統(tǒng)。
地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba
2. JDBC 連接池、監(jiān)控組件 Druid
Druid是一個(gè) JDBC 組件。
1.監(jiān)控?cái)?shù)據(jù)庫訪問性能。
2.提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池。
3.數(shù)據(jù)庫密碼加密。
4.SQL執(zhí)行日志。
地址:https://github.com/alibaba/druid
3. Java 的 JSON 處理器 fastjson
fastjson 是一個(gè)性能很好的 Java 語言實(shí)現(xiàn)的 JSON 解析器和生成器,來自阿里巴巴的工程師開發(fā)。
主要特點(diǎn):快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson);強(qiáng)大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum);零依賴(沒有依賴其它任何類庫除了JDK)。
地址:https://github.com/alibaba/fastjson
4. 服務(wù)框架 Dubbo
Apache Dubbo (incubating) |是阿里巴巴的一款高性能、輕量級(jí)的開源Java RPC框架,它提供了三大核心能力:面向接口的遠(yuǎn)程方法調(diào)用,智能容錯(cuò)和負(fù)載均衡,以及服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn)。
地址:https://github.com/alibaba/dubbo
5. 企業(yè)級(jí)流式計(jì)算引擎 JStorm
JStorm 是參考 Apache Storm 實(shí)現(xiàn)的實(shí)時(shí)流式計(jì)算框架,在網(wǎng)絡(luò)IO、線程模型、資源調(diào)度、可用性及穩(wěn)定性上做了持續(xù)改進(jìn),已被越來越多企業(yè)使用。JStorm 可以看作是 storm 的 java 增強(qiáng)版本,除了內(nèi)核用純java實(shí)現(xiàn)外,還包括了thrift、python、facet ui。從架構(gòu)上看,其本質(zhì)是一個(gè)基于 zk 的分布式調(diào)度系統(tǒng)。
地址:https://github.com/alibaba/jstorm
6. apns4j
apns4j 是 Apple Push Notification Service 的 Java 實(shí)現(xiàn)!
地址:https://github.com/teaey/apns4j
7. 分布式數(shù)據(jù)層 TDDL
TDDL 是一個(gè)基于集中式配置的 jdbc datasource實(shí)現(xiàn),具有主備,讀寫分離,動(dòng)態(tài)數(shù)據(jù)庫配置等功能。
地址:https://github.com/alibaba/tb_tddl
8. 輕量級(jí)分布式數(shù)據(jù)訪問層 CobarClient
Cobar Client是一個(gè)輕量級(jí)分布式數(shù)據(jù)訪問層(DAL)基于iBatis(已更名為MyBatis)和Spring框架實(shí)現(xiàn)。
地址:https://github.com/alibaba/cobarclient
9. 淘寶定制 JVM:TaobaoJVM
TaobaoJVM 基于 OpenJDK HotSpot VM,是國內(nèi)***個(gè)優(yōu)化、定制且開源的服務(wù)器版Java虛擬機(jī)。目前已經(jīng)在淘寶、天貓上線,全部替換了Oracle官方JVM版本,在性能,功能上都初步體現(xiàn)了它的價(jià)值。
10. Java 圖片處理類庫 SimpleImage
SimpleImage是阿里巴巴的一個(gè)Java圖片處理的類庫,可以實(shí)現(xiàn)圖片縮略、水印等處理。
地址:https://github.com/alibaba/simpleimage
11. redis 的 java 客戶端 Tedis
Tedis 是另一個(gè) redis 的 java 客戶端。Tedis 的目標(biāo)是打造一個(gè)可在生產(chǎn)環(huán)境直接使用的高可用 Redis 解決方案。
地址:https://github.com/justified/tedis
12.開源 Java 診斷工具 Arthas
Arthas(阿爾薩斯)是阿里巴巴開源的 Java 診斷工具,深受開發(fā)者喜愛。
Arthas 采用命令行交互模式,同時(shí)提供豐富的 Tab 自動(dòng)補(bǔ)全功能,進(jìn)一步方便進(jìn)行問題的定位和診斷。
地址:https://alibaba.github.io/arthas/
13.動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺(tái) Nacos
Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡(jiǎn)單易用的特性集,幫助您實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置管理、服務(wù)及流量管理。
Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu)(例如微服務(wù)范式、云原生范式)的服務(wù)基礎(chǔ)設(shè)施。
14.Java 解析 Excel 工具 easyexcel
Java 解析、生成 Excel 比較有名的框架有 Apache poi、jxl 。但他們都存在一個(gè)嚴(yán)重的問題就是非常的耗內(nèi)存,poi 有一套 SAX 模式的 API 可以一定程度的解決一些內(nèi)存溢出的問題,但 POI 還是有一些缺陷,比如 07 版 Excel 解壓縮以及解壓后存儲(chǔ)都是在內(nèi)存中完成的,內(nèi)存消耗依然很大。easyexcel 重寫了 poi 對(duì) 07 版 Excel 的解析,能夠原本一個(gè) 3M 的 excel 用 POI sax 依然需要 100M 左右內(nèi)存降低到 KB 級(jí)別,并且再大的 excel 不會(huì)出現(xiàn)內(nèi)存溢出,03 版依賴 POI 的 sax 模式。在上層做了模型轉(zhuǎn)換的封裝,讓使用者更加簡(jiǎn)單方便。
地址:https://github.com/alibaba/easyexcel
15.高可用流量管理框架 Sentinel
Sentinel 是面向微服務(wù)的輕量級(jí)流量控制框架,從流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護(hù)起來。大部分情況下,可以使用方法簽名,URL,甚至服務(wù)名稱作為資源名來標(biāo)示資源。
地址:https://github.com/alibaba/Sentinel
16.基于多維度 Metrics 的系統(tǒng)度量和監(jiān)控中間件 SOFALookout
Lookout 是一個(gè)利用多維度的 metrics 對(duì)目標(biāo)系統(tǒng)進(jìn)行度量和監(jiān)控的項(xiàng)目。Lookout 的多維度 metrics 參考 Metrics 2.0 標(biāo)準(zhǔn)。Lookout 項(xiàng)目分為客戶端部分與服務(wù)器端部分。
客戶端是一個(gè) Java 的類庫,可以將它植入您的應(yīng)用代碼中采集 metrics 信息,客戶端更多詳情。
服務(wù)端代碼部分,將于下一版本提供。通過 LOOKOUT 的服務(wù),可以對(duì) metrics 數(shù)據(jù)進(jìn)行收集、加工、存儲(chǔ)和查詢等處理,另外結(jié)合 grafana,可做數(shù)據(jù)可視化展示。
地址:https://github.com/alipay/sofa-lookout
17.基于 Spring Boot 的研發(fā)框架 SOFABoot
SOFABoot 是螞蟻金服開源的基于 Spring Boot 的研發(fā)框架,它在 Spring Boot 的基礎(chǔ)上,提供了諸如 Readiness Check,類隔離,日志空間隔離等等能力。在增強(qiáng)了 Spring Boot 的同時(shí),SOFABoot 提供了讓用戶可以在 Spring Boot 中非常方便地使用 SOFAStack 相關(guān)中間件的能力。
地址:https://github.com/alipay/sofa-boot
18.輕量級(jí) Java 類隔離容器 SOFAArk
SOFAArk 是一款基于 Java 實(shí)現(xiàn)的輕量級(jí)類隔離容器,由螞蟻金服公司開源貢獻(xiàn);主要為應(yīng)用程序提供類隔離和依賴包隔離的能力;基于 Fat Jar 技術(shù),應(yīng)用可以被打包成一個(gè)自包含可運(yùn)行的 Fat Jar,應(yīng)用既可以是簡(jiǎn)單的單模塊 Java 應(yīng)用也可以是 Spring Boot 應(yīng)用??稍L問網(wǎng)址進(jìn)入快速開始并獲取更多詳細(xì)信息。
地址:https://alipay.github.io/sofastack.github.io/
19.分布式鏈路追蹤中間件 SOFATracer
SOFATracer 是一個(gè)用于分布式系統(tǒng)調(diào)用跟蹤的組件,通過統(tǒng)一的 traceId 將調(diào)用鏈路中的各種網(wǎng)絡(luò)調(diào)用情況以日志的方式記錄下來,以達(dá)到透視化網(wǎng)絡(luò)調(diào)用的目的。這些日志可用于故障的快速發(fā)現(xiàn),服務(wù)治理等。
地址:https://github.com/alipay/sofa-tracer
20.高性能 Java RPC 框架 SOFARPC
SOFARPC 是一個(gè)高可擴(kuò)展性、高性能、生產(chǎn)級(jí)的 Java RPC 框架。在螞蟻金服 SOFARPC 已經(jīng)經(jīng)歷了十多年及五代版本的發(fā)展。SOFARPC 致力于簡(jiǎn)化應(yīng)用之間的 RPC 調(diào)用,為應(yīng)用提供方便透明、穩(wěn)定高效的點(diǎn)對(duì)點(diǎn)遠(yuǎn)程服務(wù)調(diào)用方案。為了用戶和開發(fā)者方便的進(jìn)行功能擴(kuò)展,SOFARPC 提供了豐富的模型抽象和可擴(kuò)展接口,包括過濾器、路由、負(fù)載均衡等等。同時(shí)圍繞 SOFARPC 框架及其周邊組件提供豐富的微服務(wù)治理方案。
地址:https://github.com/alipay/sofa-rpc
21.基于 Netty 的網(wǎng)絡(luò)通信框架 SOFABolt
SOFABolt 是螞蟻金融服務(wù)集團(tuán)開發(fā)的一套基于 Netty 實(shí)現(xiàn)的網(wǎng)絡(luò)通信框架。
為了讓 Java 程序員能將更多的精力放在基于網(wǎng)絡(luò)通信的業(yè)務(wù)邏輯實(shí)現(xiàn)上,而不是過多的糾結(jié)于網(wǎng)絡(luò)底層 NIO 的實(shí)現(xiàn)以及處理難以調(diào)試的網(wǎng)絡(luò)問題,Netty 應(yīng)運(yùn)而生。
為了讓中間件開發(fā)者能將更多的精力放在產(chǎn)品功能特性實(shí)現(xiàn)上,而不是重復(fù)地一遍遍制造通信框架的輪子,SOFABolt 應(yīng)運(yùn)而生。
地址:https://github.com/alipay/sofa-bolt
22.動(dòng)態(tài)非侵入 AOP 解決方案 JVM-Sandbox
JVM-Sandbox,JVM 沙箱容器,一種基于 JVM 的非侵入式運(yùn)行期 AOP 解決方案。
地址:https://github.com/alibaba/jvm-sandbox
23.面向云的分布式消息領(lǐng)域標(biāo)準(zhǔn) OpenMessaging
OpenMessaging 是由阿里巴巴發(fā)起,與雅虎、滴滴出行、Streamlio 公司共同參與創(chuàng)立,旨在創(chuàng)立廠商無關(guān)、平臺(tái)無關(guān)的分布式消息及流處理領(lǐng)域的應(yīng)用開發(fā)標(biāo)準(zhǔn)。
地址:https://github.com/openmessaging/openmessaging-java
24.P2P 文件分發(fā)系統(tǒng) Dragonfly
Dragonfly(蜻蜓)是阿里自研的 P2P 文件分發(fā)系統(tǒng),用于解決大規(guī)模文件分發(fā)場(chǎng)景下分發(fā)耗時(shí)、成功率低、帶寬浪費(fèi)等難題。大幅提升發(fā)布部署、數(shù)據(jù)預(yù)熱、大規(guī)模容器鏡像分發(fā)等業(yè)務(wù)能力。
開源版的 Dragonfly 可用于 P2P 文件分發(fā)、容器鏡像分發(fā)、局部限速、磁盤容量預(yù)檢等。它支持多種容器技術(shù),對(duì)容器本身無需做任何改造,鏡像分發(fā)比 natvie 方式提速可高達(dá) 57 倍,Registry 網(wǎng)絡(luò)出流量降低99.5%以上。
地址:https://github.com/alibaba/Dragonfly
25.LayoutManager 定制化布局方案 vlayout
VirtualLayout是一個(gè)針對(duì)RecyclerView的LayoutManager擴(kuò)展, 主要提供一整套布局方案和布局間的組件復(fù)用的問題。
地址:https://github.com/alibaba/vlayout
26.Java 代碼規(guī)約掃描插件 P3C
項(xiàng)目包含三部分:PMD 實(shí)現(xiàn)、IntelliJ IDEA 插件、Eclipse 插件
地址:https://github.com/alibaba/p3c
27.Android 容器化框架 Atlas
Atlas 是由阿里巴巴移動(dòng)團(tuán)隊(duì)自研的手機(jī)淘寶安卓客戶端容器化框架,以容器化思路解決大規(guī)模團(tuán)隊(duì)協(xié)作問題,實(shí)現(xiàn)并行開發(fā)、快速迭代和動(dòng)態(tài)部署,適用于 Android 4.x 以上系統(tǒng)版本的大小型 App 開發(fā)。
(完)