Node.js微服務

Node.js微服務
定價:414
NT $ 414
 

內容簡介

本書對如何采用Node.js及其生態工具進行微服務開發的最好實踐做了全面的介紹,包括對微服務架構基本概念及設計原則的講解,以及如何采用Node.js搭配Seneca、PM2和Docker等現代化工具來構建、測試、監控以及部署輕量級微服務,同時也闡述了Node.js在微服務實踐中 所涉及的相關概念,並就微服務的優缺點、文檔化、安全性以及可追溯性等主題進行了探討。

David Gonzalez 是一名在編程語言方面「極不專一」的軟件工程師,他在金融服務行業「混跡」多年。他嘗試找到抽象層次合適的解決方案,並探索着如何保證既不過於具體也不過於抽象之間的平衡。

David曾求學於西班牙,但是不久之后便轉戰都柏林,自2011 年起便定居於此並開啟了更為寬廣和有趣的職業生涯。他目前是一名金融技術領域的獨立咨詢師。

David樂於嘗試新的技術和范式,從而能讓自己在軟件開發的復雜世界中不斷拓展出新的版圖。
 

目錄

1微服務架構1
微服務應運而生1
單塊軟件2
現實世界中的微服務2
面向微服務的架構3
為什麼面向微服務的架構更好3
不足之處3
關鍵設計原則4
從組件到業務單元5
智能的服務,愚蠢的通信管道7
去中心化8
技術對比10
多微才是足夠的微10
關鍵的好處11
彈性11
可伸縮性11
技術多樣性13
可替換性14
獨立性15
SOA與微服務的比較16
為什麼選擇Node.js18
API聚合18
展望Node.js19
小結20
2基於Seneca和PM2構建Node.js微服務21
選擇Node.js的理由21
安裝Node.js、npm、Seneca和PM222
第一個程序——HelloWorld25
Node.js的線程模型27
模塊化組織的最佳實踐27
微服務框架Seneca32
實現控制反轉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——如何創建RESTAPI81
郵件服務:一個常見的問題82
如何發送郵件82
接口定義83
設置Mandrill84
親自動手在微服務中集成Mandrill86
回退策略91
訂單管理服務92
根據如何獲取非本地數據來定義微服務93
訂單管理服務代碼95
UI——API聚合的產物99
前端微服務的必要性99
代碼99
服務降級——當出現非災難性故障時107
斷路器108
Seneca——一塊使我們工作變得更容易的拼圖109
Seneca和promise111
調試115
小結118
5安全性和可追溯性119
基礎設施的邏輯安全119
利用SSH來對通信加密120
應用程序安全122
保持安全方面的與時俱進來應對常見威脅123
有效的代碼審閱131
可追溯性132
日志132
請求追蹤134
審計135
HTTP狀態碼136
小結138
6Node.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
網路書店 類別 折扣 價格
  1. 新書
    $414