9787121305245

Node.js微服務

David Gonzalez

  • 出版商: 電子工業
  • 出版日期: 2016-12-31
  • 台幣定價: $414
  • 售價: $414
  • 語言: 簡體中文
  • 頁數: 256
  • ISBN: 7121305240
  • ISBN-13: 9787121305245

下單後立即進貨

買這商品的人也買了...

產品描述

<內容簡介>

 

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

 

<章節目錄>

 

微服務架構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