JSON處理器 fastjson
fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。
主要特色:
- 快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)
- 強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
- 零依賴(沒有依賴其它任何類庫除了JDK)
示例代碼:
import com.alibaba.fastjson.JSON;
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);
System.out.println(jsonString);
JVM-Sandbox
JVM-Sandbox,JVM 沙箱容器,一種基於 JVM 的非侵入式運行期 AOP 解決方案。
JVM-SANDBOX 的核心功能:
實時無侵入 AOP 框架
在常見的 AOP 框架實現方案中,有靜態編織和動態編織兩種。
靜態編織
靜態編織發生在字節碼生成時根據必定框架的規則提早將 AOP 字節碼插入到目標類和方法中,實現 AOP;
動態編織
動態編織則容許在 JVM 運行過程當中完成指定方法的 AOP 字節碼加強。常見的動態編織方案大多采用重命名原有方法,再新建一個同簽名的方法來作代理的工做模式來完成 AOP 的功能(常見的實現方案如 CgLib),但這種方式存在一些應用邊界:
侵入性
對被代理的目標類須要進行侵入式改造。好比:在 Spring 中必須是託管於 Spring 容器中的 Bean
固化性
目標代理方法在啓動以後即固化,沒法從新對一個已有方法進行 AOP 加強
分佈式RPC服務框架 Dubbo
Dubbo 是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可經過高性能的 RPC 實現服務的輸出和輸入功能,能夠和 Spring 框架無縫集成。
主要核心部件:
- Remoting: 網絡通訊框架,實現了 sync-over-async 和 request-response 消息機制
- RPC: 一個遠程過程調用的抽象,支持負載均衡、容災和集羣功能
- Registry: 服務目錄框架用於服務的註冊和服務事件發佈和訂閱
工做原理:java

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
Ant Design Pro
Ant Design Pro 是一套開箱即用的中臺前端/設計解決方案。
特性
- 優雅美觀:基於 Ant Design 體系精心設計
- 常見設計模式:提煉自中後臺應用的典型頁面和場景
- 最新技術棧:使用 React/dva/antd 等前端前沿技術開發
- 響應式:針對不一樣屏幕大小設計
- 主題:可配置的主題知足多樣化的品牌訴求
- 國際化:內建業界通用的國際化方案
- 最佳實踐:良好的工程實踐助您持續產出高質量代碼
- Mock 數據:實用的本地數據調試方案
- UI 測試:自動化測試保障前端產品質量
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的監控實現:docker

NG-ZORRO
NG-ZORRO 是一個企業級的 UI 組件庫,是 Ant Design 的 Angular 4.0 實現,開發和服務於企業級後臺產品。
特性
- 提煉自企業級中後臺產品的交互語言和視覺風格,按期與 Ant Design React 版本保持更新一致。
- 開箱即用的高質量 Angular 組件。
- 使用 TypeScript 構建,提供完整的類型定義文件。
支持環境
- 現代瀏覽器和 IE9 以上(須要 polyfills)。
兼容版本
容器技術Pouch
2017年杭州雲棲大會中,阿里巴巴正式宣佈,自主研發的容器技術 Pouch 將以開源的形式回饋社區,但願與開發者共同推進中國容器技術發展,共建容器生態。
阿里Pouch並非一個徹底創新的技術。最先,阿里基於LXC技術爲集團業務提供容器服務,2011年,阿里自研容器技術T4,2016年,阿里內部將容器技術從新命名爲Pouch,並於去年支持集團內部大量核心業務,好比電商平臺核心業務、主要應用和部分數據庫、螞蟻金服的支付業務,淘寶網的交易業務等等。
關於Pouch的命名由來,源於阿里做爲開放賦能者,注重用戶場景應用的初衷。正如阿里巴巴技術專家孫宏亮所言,Pouch做爲從阿里巴巴集團內部大規模場景自研技術,相比docker、rkt等容器技術,差別化的核心價值體如今如下幾個方面:
- 富容器技術:容器內部的應用體驗如虛擬機般,擁有init進程,且富含系統服務;
- 豐富的隔離保障:隔離安全避無可避,內核加固與輕量級虛擬機支持,豐富隔離維度;
- P2P鏡像分發:超大規模場景下的鏡像分發,P2P的方式緩解網絡負載;
- 內核兼容性:企業內核的升級每每較爲緩慢,最大限度適配現有底層基礎設施。
開源數據庫AliSQL
AliSQL是基於MySQL官方版本的一個分支,由阿里雲數據庫團隊維護,目前也應用於阿里巴巴集團業務以及阿里雲數據庫服務。該版本在社區版的基礎上作了大量的性能與功能的優化改進。尤爲適合電商、雲計算以及金融等行業環境。
阿里雲數據庫資深專家丁奇介紹,AliSQL版本在強度和廣度上都經歷了極大的考驗。最新的AliSQL版本不只從其餘開源分支好比:Percona,MariaDB,WebScaleSQL等社區汲取精華,也沉澱了阿里巴巴多年在MySQL領域的經驗和解決方案。AliSQL增長更多監控指標,並針對電商秒殺、物聯網大數據壓縮、金融數據安全等場景提供個性化的解決方案。
「在通用基準測試場景下,AliSQL版本比MySQL官方版本有着70%的性能提高。在秒殺場景下,性能提高100倍。」丁奇表示。
阿里雲資深總監李津表示,「AliSQL的發展獲得了衆多智慧的支持。咱們但願將過去幾年沉澱的技術積累回饋到社區,幫助更多使用MySQL的我的和企業,這是社區良性發展的道路。咱們也歡迎更多的開發者和技術團隊加入AliSQL開源項目,使之在業內發揮更大的價值。」
和 Oracle 數據庫的性能比較:數據庫

可視化編碼的圖形語法AntV - G2
G2 是一套基於可視化編碼的圖形語法,以數據驅動,具備高度的易用性和擴展性,用戶無需關注各類繁瑣的實現細節,一條語句便可構建出各類各樣的可交互的統計圖表。
同時,G2 也是 AntV 最重要的組成,始於《The Grammar of Graphics》一書描述的視覺編碼語法系統(這也是 G2 項目命名的由來)。
特性
- 簡單、易用:從數據出發,僅需幾行代碼就能夠輕鬆得到想要的圖表展現效果
- 完備的可視化編碼:以數據驅動,提供了從數據到圖形的完整映射
- 強大的擴展能力:任何圖表,均可以基於圖形語法靈活繪製,知足你無限的創意
示例
柱狀圖npm

完整代碼:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>柱狀圖</title> <!-- 引入 G2 文件 --> <script src="https://gw.alipayobjects.com/as/g/datavis/assets/1.0.5/g2/3.0.0/g2.min.js"></script> </head> <body> <!-- 建立圖表容器 --> <div id="c1"></div> <script> const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 }
]; // G2 對數據源格式的要求,僅僅是 JSON 數組,數組的每一個元素是一個標準 JSON 對象。 // Step 1: 建立 Chart 對象 const chart = new G2.Chart({
container: 'c1', // 指定圖表容器 ID width : 600, // 指定圖表寬度 height : 300 // 指定圖表高度 });
// Step 2: 載入數據源 chart.source(data);
// Step 3:建立圖形語法,繪製柱狀圖,由 genre 和 sold 兩個屬性決定圖形位置,genre 映射至 x 軸,sold 映射至 y 軸 chart.interval().position('genre*sold').color('genre')
// Step 4: 渲染圖表 chart.render();
</script> </body></html>
原文連接:
http://mp.weixin.qq.com/s/sVlp39nazEidglWO3RBLoA。