-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Node.js微服務

( 簡體 字)
作者:趙震一,鄭偉杰類別:1. -> 程式設計 -> 網路編程 -> Node.js
譯者:
出版社:電子工業出版社Node.js微服務 3dWoo書號: 45770
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:1/1/2017
頁數:256
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121305245
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

作為一本微服務入門的實踐指南,本書采用了Node.js和以Seneca、PM2為主的現代框架來進行闡述。在各章中,我們將分別介紹如何利用最佳實踐去設計、構建、測試以及部署微服務。此外,我們還會討論另外一個有價值的課題——如何在設計系統時做出合理的妥協,來避免過度設計和確保技術方案與實際業務需求相匹配。
本書概述
第1章主要講述微服務的基本概念,包括主要優點和一些缺點,本章內容是本書后續章節的基礎。
第2章介紹了Node.js、Seneca和PM2。還討論了Node.js應用的結構,以及如何通過PM2來運行應用。另外,我們還研究了一些Seneca與PM2的替代產品。
第3章主要講述如何使用微服務來處理自然增長(計劃之外的軟件需求變更)。另外,我們還討論了如何將單塊應用分解成微服務。
第4章闡述了如何編寫我們的第一個微服務程序。
第5章涉及了安全性與可追溯性,這是現代系統的兩大重要特性,因為我們需要保證信息的安全與操作的可追溯性。在本章中,我們討論了使用Seneca來保證安全性與可追溯性的方法。
第6章主要介紹了Node.js的兩大主流測試框架——Mocha和Chai。同時使用Sinon來mock服務以及Swagger來為微服務進行文檔化。
第7章使用PM2結合Keymetrics來監控微服務,使PM2的功能得到最大發揮。
第8章通過使用PM2,學習如何在不同環境下部署微服務,并通過單條命令管理應用的“生態系統”,從而減少微服務架構帶來的開銷。我們還將討論Docker,它是一個應用容器引擎,可以部署包括Node應用在內的各種應用。
閱讀本書的準備工作
為了能夠完成本書的實踐案例,需要預先安裝Node.js、PM2(可以通過npm來安裝),以及MongoDB。此外還需要一個編輯器,我個人選用了Atom,但是一般通用的編輯器都能滿足需求。
本書的讀者對象
本書適合具有一定Node.js經驗,并且想要學習Seneca以及微服務知識的開發者。在本書中,有70%的內容是面向實踐的(因此我們會編寫大量代碼),有30%是理論知識。基于編寫的這些代碼可以幫助讀者將書中提到的模式應用到新的軟件開發中去。
約定慣例
本書將會使用不同的書寫風格來區分不同種類的信息。以下是這些風格的例子和它們的意義。
正文中的文本代碼、數據庫表名、文件夾名、文件名、文件擴展名、路徑名、URL、用戶輸入和推特用戶定位(Twitter handles)將會用代碼體書寫,如“我們知道輸入參數是一個PaymentRequest實例”。
代碼塊則將會是這樣的風格:

public interface PaymentService {
PaymentResponse processPayment(PaymentRequest request) throws
MyBusinessException;
}

如果希望向你強調代碼塊中的一部分,那么它們將會以粗體展示:

function() {
sinon.stub(Math, "random");
rollDice();
console.log(Math.random.calledWith());
});
after(function(){
Math.random.restore();
});

任何命令行的輸入和輸出將是以下這樣的:

node index.js
npm start


警告和關鍵提醒將會在這樣的圖標后出現。

小提示和小技巧將會在這樣的圖標后出現。

下載示例代碼
你可以從http://www.broadview.com.cn下載所有已購買的博文視點書籍的示例代碼文件。
勘誤表
雖然我們已經盡力謹慎地確保內容的準確性,但錯誤仍然存在。如果你發現了書中的錯誤,包括正文和代碼中的錯誤,請告訴我們,我們會非常感激你。這樣,你不僅幫助了其他讀者,也幫助我們改進后續的出版。如發現任何勘誤,可以在博文視點網站相應圖書的頁面提交勘誤信息。一旦你找到的錯誤被證實,你提交的信息就會被接受,我們的網站也會發布這些勘誤信息。你可以隨時瀏覽圖書頁面,查看已發布的勘誤信息。
內容簡介:

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

目錄:

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
序: