《Node.js微服務》一書原作者大衛·岡薩雷斯(David Gonzalez),中文版由趙震一、鄭偉傑譯,電子工業出版社2017年1月出版
基本介紹
- 書名:Node.js微服務
- 作者:趙震一 鄭偉傑
- ISBN:978-7-121-30524-5
- 頁數:256
- 定價:69.00
- 出版社:電子工業出版社
- 出版時間:2017年1月
- 開本:16開
內容提要,目錄,
內容提要
《Node.js微服務》對如何採用Node.js 及其生態工具進行微服務開發的最佳實踐做了全面的介紹,內容包括對微服務架構基本概念及設計原則的講解,以及如何採用Node.js 搭配Seneca、PM2 和Docker 等現代化工具來構建、測試、監控以及部署輕量級微服務,同時也闡述了Node.js 在微服務實踐中所涉及的相關概念,並就微服務的優缺點、文檔化、安全性以及可追溯性等主題進行了探討。
《Node.js微服務》適合掌握服務端開發基本知識的Node.js 開發者以及使用Java、C#等其他服務端技術棧並對微服務實踐感興趣的所有開發者。
目錄
1 微服務架構 1
微服務應運而生 1
單塊軟體 2
現實世界中的微服務 2
面向微服務的架構 3
為什麼面向微服務的架構更好 3
不足之處 3
關鍵設計原則 4
從組件到業務單元 5
智慧型的服務,愚蠢的通信管道 7
去中心化 8
技術對比 10
多微才是足夠的微 10
關鍵的好處 11
彈性 11
可伸縮性 11
技術多樣性 13
可替換性 14
獨立性 15
SOA與微服務的比較 16
為什麼選擇Node.js 18
API聚合 18
展望Node.js 19
小結 20
2 基於Seneca和PM2構建Node.js微服務 21
選擇Node.js的理由 21
安裝Node.js、npm、Seneca和PM2 22
第一個程式——Hello World 25
Node.js的執行緒模型 27
模組化組織的最佳實踐 27
微服務框架Seneca 32
實現控制反轉 35
Seneca的模式匹配 35
PM2——Node.js的任務執行器 46
單執行緒套用及異常 46
PM2——業界標準的任務執行器 47
小結 52
3 從單塊軟體到微服務 53
首先,我們擁有一個單塊軟體 53
如何控制自然增長 54
多抽象才是過度抽象 57
微服務的出現 58
微服務的缺陷 64
分割單塊軟體 64
數據才是分割單塊軟體的主要問題 65
組織架構適配 66
小結 67
4 編寫你的第一個Node.js微服務 69
微電子商務概覽 69
商品管理服務——雙重核心 71
獲取商品信息 72
獲取指定類別的商品 73
根據ID獲取商品 74
添加商品 75
刪除商品 75
編輯商品 76
整合各模組 76
集成Express與Seneca——如何創建REST API 81
郵件服務:一個常見的問題 82
如何傳送郵件 82
接口定義 83
設定Mandrill 84
親自動手在微服務中集成Mandrill 86
回退策略 91
訂單管理服務 92
根據如何獲取非本地數據來定義微服務 93
訂單管理服務代碼 95
UI——API聚合的產物 99
前端微服務的必要性 99
代碼 99
服務降級——當出現非災難性故障時 107
斷路器 108
Seneca——一塊使我們工作變得更容易的拼圖 109
Seneca和promise 111
調試 115
小結 118
5 安全性和可追溯性 119
基礎設施的邏輯安全 119
利用SSH來對通信加密 120
應用程式安全 122
保持安全方面的與時俱進來應對常見威脅 123
有效的代碼審閱 131
可追溯性 132
日誌 132
請求追蹤 134
審計 135
HTTP狀態碼 136
小結 138
6 Node.js微服務的測試及文檔化 140
功能性測試 141
自動化測試的金字塔 142
採用Node.js測試微服務 145
對微服務進行文檔化 175
採用Swagger對API進行文檔化 175
根據Swagger定義來生成項目 182
小結 184
7 微服務的監控 185
服務監控 185
採用PM2和Keymetrics進行監控 186
類人猿大軍—來自Netflix的主動監控 201
吞吐量和性能的降級 204
小結 206
8 微服務的部署 208
軟體部署的一些概念 208
持續集成 209
持續交付 209
採用PM2進行部署 209
PM2中的“生態系統” 210
採用PM2來部署微服務 212
Docker——一種可用於軟體交付的容器 213
組裝容器 215
部署Node.js套用 221
將Docker容器的創建過程自動化 223
Node.js事件循環—入門容易精通難 225
Node.js套用的集群化 228
為套用增加負載均衡 233
NGINX的健康檢查 238
小結 239