Java微服務 ( 簡體 字) |
作者:盧濤 | 類別:1. -> 程式設計 -> JAVA -> Java |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 45767 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:1/1/2017 |
頁數:248 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121304934 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:前言 微服務(Microservices)架構是軟件架構風格的一種。隨著云平臺的采用,企業應用程序的開發從整體應用程序轉移到小型、輕量和過程驅動的組件,這種組件稱為微服務。顧名思義,微服務是指小型服務。它們是設計可擴展、易于維護的應用程序的下一個重大事件。它不但使應用程序開發起來更容易,而且還提供了極大的靈活性來以最佳方式利用各種資源。 本書是幫助你構建供企業使用的微服務實現的實踐指南。它還解釋了領域驅動設計及其在微服務中的采用。它講述了怎樣構建更小型、更輕量、更快速的服務,同時確保其可以很方便地在生產環境中實施。它也講述了企業應用程序開發從設計與開發,到部署、測試和實現安全性的完整生命周期。 本書包含的內容 第1章,一種解決方法,涉及大型軟件項目的高層次設計,在生產環境中所面臨的共同問題和解決問題的方法。 第2章,設置開發環境,講述了如何設置開發環境,包括IDE和其他開發工具,以及不同的庫。本章涉及創建基本項目到設置spring引導配置,以建立和發展第一個微服務。 第3章,領域驅動設計,通過引用一個示例項目為其余的章節設定基調。它使用此示例項目來驅動服務或應用程序的不同功能和領域組合來解釋領域驅動設計。 第4章,實現微服務,講述示例項目從設計到實現的過程。本章不僅涉及編碼,還涉及微服務的不同方面——構建、單元測試和包裝。在本章末尾,將完成一個可用于部署和使用的示例微服務項目。 第5章,部署和測試,講述了如何采用不同的形式,包括獨立部署和使用諸如Docker的容器來部署微服務。本章還將演示如何用Docker把我們的示例項目部署到諸如AWS的云服務上面。你還將掌握使用REST Java客戶端和其他工具來測試微服務的知識。 第6章,實現微服務的安全性,解釋如何利用身份驗證和授權來保證微服務的安全。身份驗證將使用基本身份驗證和身份驗證令牌來講述。同樣,授權將使用Spring Security來解釋。本章還將解釋常見的安全問題及對策。 第7章,利用微服務Web應用程序來使用服務,解釋了如何利用Knockout、Require和 Bootstrap JS庫開發web應用程序(UI),構建使用微服務來顯示數據的web應用程序的原型和一個小型實用程序項目(示例項目)的流程。 第8章,最佳做法和一般原則,講述微服務設計的最佳做法和一般原則。本章還提供了有關使用行業做法進行微服務開發的詳細信息和范例。本章還包含微服務實現會產生的錯誤,以及如何才能避免這類問題的幾個例子。 第9章,故障排除指南,解釋了在微服務及其解決方案的開發過程中會遇到的常見問題。這將幫助你順利地掌握本書內容,并使學習過程輕松。 學習本書需要具備的條件 為了學習本書,可以使用至少具備2GB內存的安裝了任何操作系統(Linux、Windows或Mac)的計算機;還需要NetBeans with Java、Maven、Spring Boot、Spring Cloud、Eureka Server、Docker和CI/CD的應用程序。對于Docker容器,可能需要一個單獨的虛擬機或一個云主機,最好擁有16GB或更大的內存。 本書的受眾 本書面向熟悉微服務架構,并對核心要素和微服務應用程序有一個合理的知識水平和理解,但現在想要深入了解如何有效地實施企業級微服務的Java開發人員。 |
內容簡介:微服務是利用云平臺開發企業應用程序的最新技術,它是小型、輕量和過程驅動的組件。微服務適合設計可擴展、易于維護的應用程序。它可以使開發更容易,還能使資源得到最佳利用。本書幫助你用Java構建供企業使用的微服務架構,內容包括微服務核心概念和框架、大型軟件項目的高層次設計、開發環境設置和前期配置、對微服務架構持續集成的部署、實現微服務的安全性、有效地執行測試、微服務設計的最佳做法和一般原則,以及如何檢測和調試問題。本書適合想要了解微服務架構,以及想要深入了解如何有效地實施企業級微服務的Java開發人員。 |
目錄:1 一種解決方法 1 微服務的演變 2 整體式架構概述 3 整體式架構的局限性與它的微服務解決方案的對比 3 一維的可擴展性 6 在出故障時回滾版本 7 采用新技術時的問題 7 與敏捷實踐的契合 8 減輕開發工作量——可以做得更好 9 微服務的構建管道 10 使用諸如Docker的容器部署 11 容器 11 Docker 12 Docker的架構 13 Docker容器 14 部署 14 小結 14 2 設置開發環境 17 Spring Boot配置 18 Spring Boot概述 18 把Spring Boot添加至REST示例 19 添加一個嵌入式Jetty服務器 21 示例REST程序 22 編寫REST控制器類 24 @RestController 25 @RequestMapping 25 @RequestParam 25 @PathVariable 26 制作一個示例REST可執行應用程序 29 設置應用程序構建 30 運行Maven工具 30 用Java命令執行 31 使用Postman Chrome擴展測試REST API 31 更多的正向測試場景 34 反向的測試場景 35 NetBeans IDE安裝和設置 37 參考資料 42 小結 42 3 領域驅動設計 43 領域驅動設計基本原理 44 組成部分 45 普遍存在的語言 45 多層架構 45 表示層 46 應用程序層 46 領域層 46 基礎架構層 47 領域驅動設計的工件 47 實體 47 值對象 48 服務 49 聚合 50 存儲庫 52 工廠 53 模塊 54 戰略設計和原則 55 有界上下文 55 持續集成 56 上下文映射 57 共享內核模式 58 客戶和供應商模式 58 順從者模式 59 反腐層 59 獨立方法 59 開放主機服務 60 精餾 60 示例領域服務 60 實體的實現 61 存儲庫的實現 63 服務的實現 66 小結 67 4 實現微服務 69 OTRS概述 70 開發和實現微服務 71 餐館微服務 72 控制器類 73 服務類 76 存儲庫類 79 實體類 82 預訂和用戶服務 85 注冊和發現服務(Eureka服務) 85 執行 87 測試 87 參考資料 92 小結 92 5 部署和測試 93 使用Netflix OSS的微服務架構概述 93 負載均衡 95 客戶端的負載均衡 95 服務器端的負載均衡 98 電路斷路器與監控 102 使用Hystrix的回退方法 102 監控 103 設置Hystrix儀表板 105 設置Turbine 107 使用容器部署微服務 109 安裝和配置 109 具有4 GB內存的Docker機器 110 使用Maven構建Docker映像 110 使用 Maven 運行Docker 114 使用Docker執行集成測試 115 把映像推送到注冊表 118 管理Docker容器 119 參考資料 121 小結 121 6 實現微服務的安全性 123 啟用安全套接字層 123 身份驗證和授權 127 OAuth 2.0 127 OAuth的用法 128 OAuth 2.0規范——簡明詳細信息 128 OAuth 2.0角色 129 OAuth 2.0客戶端注冊 131 OAuth 2.0協議端點 135 OAuth 2.0授權類型 137 使用Spring Security的OAuth實現 144 授權碼許可 150 隱式許可 153 資源所有者密碼憑據許可 154 客戶端憑據許可 155 參考資料 155 小結 156 7 利用微服務Web應用程序來使用服務 157 AngularJS框架概述 157 MVC 158 MVVM 158 模塊 158 提供程序和服務 160 作用域 161 控制器 161 過濾器 161 指令 162 UI-Router 162 OTRS 功能的開發 163 主頁/餐館列表頁 163 index.html 164 app.js 169 restaurants.js 172 restaurants.html 179 搜索餐館 180 餐館詳細信息與預訂選項 181 restaurant.html 181 登錄頁面 183 login.html 184 login.js 185 預訂確認 186 設置web應用程序 187 小結 201 8 最佳做法和一般原則 203 概述和心態 203 最佳做法和原則 205 Nanoservice(不推薦)、規模和整體性 205 持續集成和部署 206 系統/端到端測試自動化 207 自我監控和記錄 207 每個微服務都使用獨立的數據存儲區 209 事務邊界 210 微服務框架和工具 210 Netflix開放源碼軟件(OSS) 210 構建——Nebula 211 部署和交付——Spinnaker與Aminator 211 服務注冊和發現——Eureka 211 服務溝通——Ribbon 212 電路斷路器——Hystrix 212 邊緣(代理)服務器——Zuul 212 業務監控——Atlas 213 可靠性監控服務——Simian Army 213 AWS資源監控——Edda 214 主機性能監控——Vector 215 分布式配置管理——Archaius 215 Apache Mesos調度器——Fenzo 215 成本和云利用率——Ice 216 其他安全工具——Scumblr和FIDO 216 參考資料 217 小結 218 9 故障排除指南 219 日志記錄和ELK環境 219 簡要概述 221 Elasticsearch 221 Logstash 221 Kibana 222 ELK環境安裝 222 安裝Elasticsearch 223 安裝Logstash 224 安裝Kibana 225 服務調用關聯ID的使用 226 讓我們看看怎樣解決這個問題 226 依賴項和版本 227 循環依賴關系及其影響 227 設計系統時需要分析它 227 維護不同版本 227 讓我們了解更多 228 參考資料 228 小結 228 |
序: |