发表于2024-11-22
Node.js微服務 pdf epub mobi txt 電子書 下載 2024
本書內容要點:
√ 理解Node.js模塊並掌握在與微服務打交道時的zui佳實踐
√ 將現有的單塊係統重新架構成麵嚮微服務的軟件
√ 使用Seneca和Node.js構建齣健壯且可伸縮的微服務
√ 對微服務進行隔離測試從而創建齣可靠的係統
√ 使用PM2部署並管理微服務
√ 監控微服務的健康狀況(CPU、內存以及I/O)
《Node.js微服務》對如何采用Node.js 及其生態工具進行微服務開發的zui佳實踐做瞭全麵的介紹,內容包括對微服務架構基本概念及設計原則的講解,以及如何采用Node.js 搭配Seneca、PM2 和Docker 等現代化工具來構建、測試、監控以及部署輕量級微服務,同時也闡述瞭Node.js 在微服務實踐中所涉及的相關概念,並就微服務的優缺點、文檔化、安全性以及可追溯性等主題進行瞭探討。
《Node.js微服務》適閤掌握服務端開發基本知識的Node.js 開發者以及使用Java、C#等其他服務端技術棧並對微服務實踐感興趣的所有開發者。
David Gonzalez 是一名在編程語言方麵“極不專一”的軟件工程師,他在金融服務行業“混跡”多年。他嘗試找到抽象層次閤適的解決方案,並探索著如何保證既不過於具體也不過於抽象之間的平衡。
David 曾求學於西班牙,但是不久之後便轉戰都柏林,自2011 年起便定居於此並開啓瞭更為寬廣和有趣的職業生涯。他目前是一名金融技術領域的獨立谘詢師。他的Linkedin賬號地址是:https://ie.linkedin.com/in/david-gonzalez-737b7383。
David 樂於嘗試新的技術和範式,從而能讓自己在軟件開發的復雜世界中不斷拓展齣新的版圖。
審校者
Kishore Kumar Yekkanti 是一名經驗豐富的專傢,他在過去的十年裏曾與不同的領域和技術打過交道。他對軟件開發中的消除浪費尤具熱情。Kishore 是敏捷原則的巨大貢獻者和遵循者。他是一名善於開發端到端係統的全棧開發者,同時也是一名通曉多種語言的程序員。目前他專注於高度分布式應用中的微服務擴展,而這些應用部署於雲端基於容器的係統(Docker)之中。他曾在多傢知名的公司擔任過首席工程師,這些公司包括Thoughtworks、CurrencyFair 等。他曾通過微服務為這些公司的團隊帶來新生。
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
第一個程序——Hello World25
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——如何創建REST API81
郵件服務:一個常見的問題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
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
在技術圈裏,微服務已不是一張生麵孔,確切地說,如今已算得上是一名當紅的明星瞭。然而,對於任何一門流行的技術而言,從齣現到被廣泛采納必定都會經曆一個被質疑、被挑戰,以及在實踐的錘煉中不斷進化的過程,微服務也是如此。
作為本書的譯者,我並不打算在這篇序裏給齣太多的劇透。但是對扒一扒“微服務”的成長史卻深感義不容辭。
根據Martin Fowler 大叔的迴憶,“Microservices”一詞是在2011 年5 月於威尼斯附近舉辦的一次架構師工作坊的討論中被首次提齣的。
2012 年,微服務正式齣道。“Microservices”一詞首次在ThoughtWorks 技術雷達2012年3 月的報告中亮相。當時報告對其成熟度的評級位於“評估(Assess)”象限。
不到一年時間,“Microservices”一詞在2012 年10 月的技術雷達中已經進入瞭“試驗(Trial)”象限。這份報告稱,TW 及更廣範圍內的社區都將微服務作為一項分布式係統設計的技術開始采用。
2013 年,可配閤微服務實施的一些框架和工具相繼齣現,比如Spring Boot、Hystrix 等。
在此之後,業界對於微服務的實踐及討論逐漸升溫。2014 年3 月,Adrian Cockcroft(前
Netflix 首席雲架構師,被譽為“讓Netflix 走嚮雲端的男人”)與John Allspaw(現任Etsy的CTO)等人在Twitter 上展開瞭關於“微服務與單塊應用”孰優孰劣的討論1。
而在業界,真正為“微服務架構”這一架構風格正名的當屬Martin Fowler 大叔於2014年3月在其博客發錶的Microservices2一文,也正是此文讓大眾對微服務有瞭更加具體的認識。
2015 年,隨著以Docker 為代錶的容器技術的突飛猛進,微服務的部署難題迎刃而解,甚至有人將2015 年稱為微服務架構元年。
而當我們跨入2016 年甚至是2017 年的時候,微服務已正值壯年。在書店及互聯網上,關於什麼是微服務的書籍、博文已成燎原之勢。對於那些希望瞭解微服務“是什麼”的人來說,這是一個美好的時代。但是就微服務生命周期各個階段該“怎麼做”而言,譯者深感始終缺少一本接地氣的實踐指南。
當電子工業齣版社計算機齣版分社的張春雨編輯嚮我推薦這本書的時候,我的心裏是糾結的。因為我目前本職的工作量是相當飽和的(老闆請看過來~),但是卻無法拒絕這本書。這不就是那部我尋找已久的接地氣的“missing guide”嗎?
尤其是將“微服務”與“Node.js”這兩味如此珍貴的藥材一起入藥時,它們又會對“單塊係統”中的哪些痼疾産生怎樣奇特的療效呢?說好瞭不劇透,那麼就請讀者親自體會這一段接地氣的技術之旅吧。
再次感謝張春雨編輯對我的信任,也非常榮幸能參與這本書的翻譯。當然,翻譯一本書並不是一件輕鬆的事情,我要感謝我的師弟鄭偉傑,他與我共同承擔瞭本書的翻譯工作,正因為有瞭他的加入纔讓我得以工作翻譯兩不誤。其次要感謝偉傑的女友,她為本書譯文做瞭審閱與潤色。最後,我要感謝我的傢人,尤其是我的老婆和父母,你們是我堅強的後盾,讓我能專注於做好自己喜歡的事情。
由於時間及能力所限,我們對於原書的理解及對譯文的錶述難免存在一些不妥之處,希望各位讀者給予理解及反饋。我的郵箱是emsn1026@gmail.com,歡迎各位讀者與我們聯係。
趙震一
2016 年8 月於杭州
已經給公司同事看瞭,已經學起來瞭!
評分書還是不錯的,不過建議懂node的人讀
評分係統入門
評分商品很不錯,買來很滿意,京東購物一直在用
評分趁著活動屯起來,前端技術必須會
評分玩玩node,看看。能否替換javs
評分哈哈哈哈哈哈哈呼呼呼呼
評分好的
評分可以
Node.js微服務 pdf epub mobi txt 電子書 下載