阿里前10大開源項目,致敬!
1
JSON處理器 fastjson
fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。
主要特點:
快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)
強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
零依賴(沒有依賴其它任何類庫除了JDK)
示例代碼:
Group group = new Group();
group.setId(0L);
group.setName("admin");
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
String jsonString = JSON.toJSONString(group);
2
JVM-Sandbox
JVM-Sandbox,JVM 沙箱容器,一種基於 JVM 的非侵入式運行期 AOP 解決方案。
JVM-SANDBOX 的核心功能:
實時無侵入 AOP 框架
在常見的 AOP 框架實現方案中,有靜態編織和動態編織兩種。
靜態編織
靜態編織發生在位元組碼生成時根據一定框架的規則提前將 AOP 位元組碼插入到目標類和方法中,實現 AOP;
動態編織
動態編織則允許在 JVM 運行過程中完成指定方法的 AOP 位元組碼增強。常見的動態編織方案大多採用重命名原有方法,再新建一個同簽名的方法來做代理的工作模式來完成 AOP 的功能(常見的實現方案如 CgLib),但這種方式存在一些應用邊界:
侵入性
對被代理的目標類需要進行侵入式改造。比如:在 Spring 中必須是託管於 Spring 容器中的 Bean
固化性
目標代理方法在啟動之後即固化,無法重新對一個已有方法進行 AOP 增強
3
分散式RPC服務框架 Dubbo
Dubbo 是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring 框架無縫集成。
主要核心部件:
Remoting: 網路通信框架,實現了 sync-over-async 和 request-response 消息機制
RPC: 一個遠程過程調用的抽象,支持負載均衡、容災和集群功能
Registry: 服務目錄框架用於服務的註冊和服務事件發布和訂閱
工作原理:
4
Node.js框架 Egg.js
Egg.js,為企業級框架和應用而生,是阿里開源的企業級 Node.js 框架。
特性
深度框架定製
高度可擴展的插件機制
內置多進程管理
基於 koa 開發,性能優異
框架穩定,測試覆蓋率高
開始使用
npm install egg-init -g
$egg-init --type simple showcase && cd showcase
$npm install
$npm run dev
$open http://localhost:7001
5
Ant Design Pro
Ant Design Pro 是一套開箱即用的中台前端/設計解決方案。
特性
優雅美觀:基於 Ant Design 體系精心設計
常見設計模式:提煉自中後台應用的典型頁面和場景
最新技術棧:使用 React/dva/antd 等前端前沿技術開發
響應式:針對不同屏幕大小設計
主題:可配置的主題滿足多樣化的品牌訴求
國際化:內建業界通用的國際化方案
最佳實踐:良好的工程實踐助您持續產出高質量代碼
Mock 數據:實用的本地數據調試方案
UI 測試:自動化測試保障前端產品質量
6
JDBC連接池,監控組件Druid
Druid是一個JDBC組件,它包括三部分:
DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的插件體系。
DruidDataSource 高效可管理的資料庫連接池。
SQLParser
Druid可以做什麼?
1) 可以監控資料庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對於線上分析資料庫訪問性能有幫助。
2) 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的資料庫連接池。
3) 資料庫密碼加密。直接把資料庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL執行日誌,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫訪問情況。
擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。
如下是一個基於Druid內置擴展StatFilter的監控實現:
7
NG-ZORRO
NG-ZORRO 是一個企業級的 UI 組件庫,是 Ant Design 的 Angular 4.0 實現,開發和服務於企業級後台產品。
特性
提煉自企業級中後台產品的交互語言和視覺風格,定期與 Ant Design React 版本保持更新一致。
開箱即用的高質量 Angular 組件。
使用 TypeScript 構建,提供完整的類型定義文件。
支持環境
現代瀏覽器和 IE9 以上(需要 polyfills)。
兼容版本
當前支持 Angular 4.0.0 版本
8
容器技術Pouch
2017年杭州雲棲大會中,阿里巴巴正式宣布,自主研發的容器技術 Pouch 將以開源的形式回饋社區,希望與開發者共同推動中國容器技術發展,共建容器生態。
阿里Pouch並不是一個完全創新的技術。最早,阿里基於LXC技術為集團業務提供容器服務,2011年,阿里自研容器技術T4,2016年,阿里內部將容器技術重新命名為Pouch,並於去年支持集團內部大量核心業務,比如電商平台核心業務、主要應用和部分資料庫、螞蟻金服的支付業務,淘寶網的交易業務等等。
關於Pouch的命名由來,源於阿里作為開放賦能者,注重用戶場景應用的初衷。正如阿里巴巴技術專家孫宏亮所言,Pouch作為從阿里巴巴集團內部大規模場景自研技術,相比docker、rkt等容器技術,差異化的核心價值體現在以下幾個方面:
富容器技術:容器內部的應用體驗如虛擬機般,擁有init進程,且富含系統服務;
豐富的隔離保障:隔離安全避無可避,內核加固與輕量級虛擬機支持,豐富隔離維度;
P2P鏡像分發:超大規模場景下的鏡像分發,P2P的方式緩解網路負載;
內核兼容性:企業內核的升級往往較為緩慢,最大限度適配現有底層基礎設施。
9
開源資料庫AliSQL
AliSQL是基於MySQL官方版本的一個分支,由阿里雲資料庫團隊維護,目前也應用於阿里巴巴集團業務以及阿里雲資料庫服務。該版本在社區版的基礎上做了大量的性能與功能的優化改進。尤其適合電商、雲計算以及金融等行業環境。
阿里雲資料庫資深專家丁奇介紹,AliSQL版本在強度和廣度上都經歷了極大的考驗。最新的AliSQL版本不僅從其他開源分支比如:Percona,MariaDB,WebScaleSQL等社區汲取精華,也沉澱了阿里巴巴多年在MySQL領域的經驗和解決方案。AliSQL增加更多監控指標,並針對電商秒殺、物聯網大數據壓縮、金融數據安全等場景提供個性化的解決方案。
「在通用基準測試場景下,AliSQL版本比MySQL官方版本有著70%的性能提升。在秒殺場景下,性能提升100倍。」丁奇表示。
阿里雲資深總監李津表示,「AliSQL的發展得到了眾多智慧的支持。我們希望將過去幾年沉澱的技術積累回饋到社區,幫助更多使用MySQL的個人和企業,這是社區良性發展的道路。我們也歡迎更多的開發者和技術團隊加入AliSQL開源項目,使之在業內發揮更大的價值。」
和 Oracle 資料庫的性能比較:
10
可視化編碼的圖形語法AntV - G2
G2 是一套基於可視化編碼的圖形語法,以數據驅動,具有高度的易用性和擴展性,用戶無需關注各種繁瑣的實現細節,一條語句即可構建出各種各樣的可交互的統計圖表。
同時,G2 也是 AntV 最重要的組成,始於《The Grammar of Graphics》一書描述的視覺編碼語法系統(這也是 G2 項目命名的由來)。
特性
簡單、易用:從數據出發,僅需幾行代碼就可以輕鬆獲得想要的圖表展示效果
完備的可視化編碼:以數據驅動,提供了從數據到圖形的完整映射
強大的擴展能力:任何圖表,都可以基於圖形語法靈活繪製,滿足你無限的創意
示例
柱狀圖
完整代碼:
柱狀圖
TAG:美的讓人心動 |