作 者:(美)托馬斯·亨特二世 著 郭笑鵬 譯
定 價:149
出 版 社:機械工業出版社
出版日期:2022年01月01日
頁 數:316
裝 幀:平裝
ISBN:9787111694496
從初創公司到世界500強,大多數公司都喜歡使用Node.js來構建高性能的後端服務。工程師對Node.js有很高的評價,因為它有容易理解的API和大家熟悉的語法。在大的包存儲庫的強力支持下,Node.js的生態必將更加繁榮。 在本書中,作者證明了Node.js在構建可觀察、可擴展且有彈性的服務方面與傳統的企業平臺一樣適用。中高級Node.js開發人員會發現,他們可以將應用程序代碼和現代服務的各個層面結合起來。通過學習本書,你可以: ?了解為什麼要運行多個相同的Node.js服務副本。 ?根據業等
●第1章 為什麼要用分布式9
1.1 JavaScript的單線程特性9
1.2 Node.js 速覽13
1.3 Node.js的事件循環16
1.4 示例應用程序21
第2章 協議26
2.1 使用HTTP請求和響應27
2.2 使用GraphQL構建API外觀39
2.3 使用gRPC進行RPC通信46
第3章 擴展54
3.1 集群模塊54
3.2 使用HAProxy實現反向代理61
3.3 SLA和負載測試72
第4章 可觀測性85
4.1 運行環境85
4.2 ELK與日志87
4.3 Graphite、StatsD和Grafana度量指標94
4.4 使用Zipkin進行分布式請求跟蹤102
4.5 運行狀況檢查110
4.6 使用 Cabot 進行報警113
第5章 容器119
5.1 Docker簡介121
5.2 容器化Node.js服務127
5.3 使用 Docker Compose進行基本編排135
5.4 內部Docker 注冊表140
第6章 部署145
6.1 使用 Travis CI 構建流水線146
6.2 自動化測試151
6.3 部署Heroku162
6.4 模塊、包和SemVer168
6.5 內部npm注冊表179
第7章 容器編排184
7.1 Kubernetes 簡介185
7.2 啟動188
7.3 部署應用程序192
7.4 服務發現199
7.5 修改部署204
第8章 彈性210
8.1 Node.js 進程的終止210
8.2 構建無狀態服務218
8.3 使用Memcached構建外部緩存224
8.4 數據庫連接的彈性229
8.5 使用Kne行Schema 遷移238
8.6 冪等性和消息傳遞彈性248
8.7 彈性測試255
第9章 分259
9.1 ID生成問題259
9.2 Redis 簡介262
9.3 Redis 操作263
9.4 尋求原子性272
9.5 事務274
9.6 Lua腳本276
第10章 安全性281
10.1 繁雜的代碼庫281
10.2 認識攻擊面283
10.3 應用程序配置287
10.4 升級依賴項292
10.5 升級Node.js298
附錄A 安裝HAProxy303
附錄B 安裝Docker305
附錄C 安裝Minikube和Kubectl307
Node.js是一個基於Chrome V8引擎的JavaScript運行時環境,使用了高效、輕量級的事件驅動、非阻塞I/O模型,讓JavaScript運行在服務端的開發平臺。本書主要介紹基於Node.js構建企業級後端服務,內容涉及Node.js和JavaScript的特性介紹、通信協議、擴展、可觀測性、Docker容器、部署、容器編排、應用程序容錯、分、應用程序安全性等內容。本書不是面向Node.js新手的,適用於擁有Node.js 實戰經驗且熟練掌握JavaScript的開發人員。讀完本書,你會了解在生產環境中運行 Node.js服務所需的許多技術。