天天看點

這就是巨人的肩膀!2018年阿裡巴巴開源的那些牛逼java項目彙總導讀:

轉載自:https://www.toutiao.com/a6657846514204803595/?iid=58507987351

導讀:

開源展示了人類共同協作,成果分享的魅力,每一次技術發展都是站在巨人的肩膀上,技術諸多創新和發展往往就是基于開源發展起來的,沒有任何一家網絡公司可以不使用開源技術,僅靠自身技術而發展起來。阿裡巴巴各個團隊都是發自内心地将踩過的坑和總結的經驗融入到開源項目中,供業界所有人使用,希望幫助他人解決問題。

把阿裡巴巴的一些重要的開源項目進行整理,希望對大家有所幫助。(以下項目排名不分先後)

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

Spring Cloud Alibaba 緻力于提供分布式應用服務開發的一站式解決方案。此項目包含開發分布式應用服務的必需元件,友善開發者通過 Spring Cloud 程式設計模型輕松使用這些元件來開發分布式應用服務。

依托 Spring Cloud Alibaba,您隻需要添加一些注解和少量配置,就可以将 Spring Cloud 應用接入阿裡分布式應用解決方案,通過阿裡中間件來迅速搭建分布式應用系統。

位址:

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

2. JDBC 連接配接池、監控元件 Druid

Druid是一個 JDBC 元件。

● 監控資料庫通路性能。

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

● 資料庫密碼加密。

● SQL執行日志。

位址:

https://github.com/alibaba/druid

3. Java 的 JSON 處理器 fastjson

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

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

位址:

https://github.com/alibaba/fastjson

4. 服務架構 Dubbo

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

位址:

https://github.com/alibaba/dubbo

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

這就是巨人的肩膀!2018年阿裡巴巴開源的那些牛逼java項目彙總導讀:

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

位址:

https://github.com/alibaba/jstorm

6. apns4j

apns4j 是 Apple Push Notification Service 的 Java 實作!

位址:

https://github.com/teaey/apns4j

7. 分布式資料層 TDDL

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

位址:

https://github.com/alibaba/tb_tddl

8. 輕量級分布式資料通路層 CobarClient

Cobar Client是一個輕量級分布式資料通路層(DAL)基于iBatis(已更名為MyBatis)和Spring架構實作。

位址:

https://github.com/alibaba/cobarclient

9. 淘寶定制 JVM:TaobaoJVM

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

位址:

http://jvm.taobao.org

10. Java 圖檔處理類庫 SimpleImage

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

位址:

https://github.com/alibaba/simpleimage

11. redis 的 java 用戶端 Tedis

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

位址:

https://github.com/justified/tedis

12.開源 Java 診斷工具 Arthas

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

Arthas 采用指令行互動模式,同時提供豐富的 Tab 自動補全功能,進一步友善進行問題的定位和診斷。

位址:

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

13.動态服務發現、配置和服務管理平台 Nacos

這就是巨人的肩膀!2018年阿裡巴巴開源的那些牛逼java項目彙總導讀:

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

Nacos 幫助您更靈活和容易地建構、傳遞和管理微服務平台。 Nacos 是建構以“服務”為中心的現代應用架構(例如微服務範式、雲原生範式)的服務基礎設施。

位址:

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

14.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

15.高可用流量管理架構 Sentinel

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

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

位址:

https://github.com/alibaba/Sentinel

16.基于多元度 Metrics 的系統度量和監控中間件 SOFALookout

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

用戶端是一個 Java 的類庫,可以将它植入您的應用代碼中采集 metrics 資訊,用戶端更多詳情。

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

位址:

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

17.基于 Spring Boot 的研發架構 SOFABoot

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

位址:

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

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

SOFAArk 是一款基于 Java 實作的輕量級類隔離容器,由螞蟻金服公司開源貢獻;主要為應用程式提供類隔離和依賴包隔離的能力;基于 Fat Jar 技術,應用可以被打包成一個自包含可運作的 Fat Jar,應用既可以是簡單的單子產品 Java 應用也可以是 Spring Boot 應用。可通路網址進入快速開始并擷取更多詳細資訊。

位址:

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

19.分布式鍊路追蹤中間件 SOFATracer

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

位址:

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

20.高性能 Java RPC 架構 SOFARPC

SOFARPC 是一個高可擴充性、高性能、生産級的 Java RPC 架構。在螞蟻金服 SOFARPC 已經經曆了十多年及五代版本的發展。SOFARPC 緻力于簡化應用之間的 RPC 調用,為應用提供友善透明、穩定高效的點對點遠端服務調用方案。為了使用者和開發者友善的進行功能擴充,SOFARPC 提供了豐富的模型抽象和可擴充接口,包括過濾器、路由、負載均衡等等。同時圍繞 SOFARPC 架構及其周邊元件提供豐富的微服務治理方案。

位址:

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

21.基于 Netty 的網絡通信架構 SOFABolt

SOFABolt 是螞蟻金融服務集團開發的一套基于 Netty 實作的網絡通信架構。

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

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

位址:

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

22.動态非侵入 AOP 解決方案 JVM-Sandbox

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

位址:

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