微服务将代码分解为小型的、分布式的独立服务,这些服务需要深谋远虑和仔细设计。Spring Boot和Spring Cloud简化了微服务应用程序。就像Spring框架简化了企业级Java开发一样,Spring Boot移除了与编写基于REST的服务有关的样板代码。Spring Cloud提供了一套工具,用于微服务发现、路由以及将微服务部署到企业和云中。
本书教读者如何使用Java和Spring平台构建基于微服务的应用程序。在构建和部署第1个Spring Cloud应用程序时,读者将学习如何进行微服务设计。在本书中,精心挑选的真实案例展示了基于微服务的各种模式,这些模式用于配置、路由、扩展和部署服务。读者将了解Spring易于使用的工具,并看到其如何助力用微服务来增强和重构现有的应用程序。
本书主要内容
● 核心微服务设计原则。
● 使用Spring Cloud Config管理配置。
● 使用Spring、Hystrix和Ribbon实现客户端弹性。
● 使用Netflix Zuul进行智能路由。
● 部署Spring Cloud应用程序。
本书是为具有Java和Spring经验的开发人员编写的。
本书以一个名为EagleEye的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境(美亚)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具解决这些问题。
本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。
约翰·卡内尔(John Carnell)是一位知名云工程师,拥有20 年的Java 开发经验。他大部分时间都在使用AWS 平台构建基于电话的微服务。他的日常工作主要是设计和构建跨Java、Clojure 和Go 等多种技术平台的微服务。
目录
第 1章 欢迎迈入云世界,Spring 1
1.1 什么是微服务 1
1.2 什么是Spring,为什么它与微服务有关 4
1.3 在本书中读者会学到什么 5
1.4 为什么本书与你有关 6
1.5 使用Spring Boot来构建微服务 6
1.6 为什么要改变构建应用的方式 10
1.7 云到底是什么 11
1.8 为什么是云和微服务 13
1.9 微服务不只是编写代码 14
1.9.1 核心微服务开发模式 15
1.9.2 微服务路由模式 16
1.9.3 微服务客户端弹性模式 17
1.9.4 微服务安全模式 18
1.9.5 微服务日志记录和跟踪模式 19
1.9.6 微服务构建和部署模式 20
1.10 使用Spring Cloud构建微服务 22
1.10.1 Spring Boot 23
1.10.2 Spring Cloud Config 23
1.10.3 Spring Cloud服务发现 24
1.10.4 Spring Cloud与Netflix Hystrix和Netflix Ribbon 24
1.10.5 Spring Cloud与Netflix Zuul 24
1.10.6 Spring Cloud Stream 24
1.10.7 Spring Cloud Sleuth 24
1.10.8 Spring Cloud Security 25
1.10.9 代码供应 25
1.11 通过示例来介绍Spring Cloud 25
1.12 确保本书的示例是有意义的 27
1.13 小结 28
第 2章 使用Spring Boot构建微服务 29
2.1 架构师的故事:设计微服务架构 31
2.1.1 分解业务问题 31
2.1.2 建立服务粒度 32
2.1.3 互相交流:定义服务接口 35
2.2 何时不应该使用微服务 36
2.2.1 构建分布式系统的复杂性 36
2.2.2 服务器散乱 36
2.2.3 应用程序的类型 36
2.2.4 数据事务和一致性 37
2.3 开发人员的故事:用SpringBoot和Java构建微服务 37
2.3.1 从骨架项目开始 37
2.3.2 引导Spring Boot应用程序:编写引导类 39
2.3.3 构建微服务的入口:Spring Boot控制器 40
2.4 DevOps工程师的故事:构建运行时的严谨性 44
2.4.1 服务装配:打包和部署微服务 46
2.4.2 服务引导:管理微服务的配置 47
2.4.3 服务注册和发现:客户端如何与微服务通信 48
2.4.4 传达微服务的“健康状况” 49
2.5 将视角综合起来 51
2.6 小结 52
第3章 使用Spring Cloud配置服务器控制配置 53
3.1 管理配置(和复杂性) 54
3.1.1 配置管理架构 55
3.1.2 实施选择 56
3.2 构建Spring Cloud配置服务器 58
3.2.1 创建Spring Cloud Config引导类 61
3.2.2 使用带有文件系统的Spring Cloud配置服务器 62
3.3 将Spring Cloud Config与Spring Boot客户端集成 64
3.3.1 建立许可证服务对Spring Cloud Config服务器的依赖 65
3.3.2 配置许可证服务以使用Spring Cloud Config 66
3.3.3 使用Spring Cloud配置服务器连接数据源 69
3.3.4 使用@Value注解直接读取属性 72
3.3.5 使用Spring Cloud配置服务器和Git 73
3.3.6 使用Spring Cloud配置服务器刷新属性 73
3.4 保护敏感的配置信息 75
3.4.1 下载并安装加密所需的Oracle JCE jar 75
3.4.2 创建加密密钥 76
3.4.3 加密和解密属性 76
3.4.4 配置微服务以在客户端使用加密 78
3.5 最后的想法 79
3.6 小结 80
第4章 服务发现 81
4.1 我的服务在哪里 82
4.2 云中的服务发现 84
4.2.1 服务发现架构 84
4.2.2 使用Spring和Netflix Eureka进行服务发现实战 87
4.3 构建Spring Eureka服务 88
4.4 通过Spring Eureka注册服务 90
4.5 使用服务发现来查找服务 93
4.5.1 使用Spring DiscoveryClient查找服务实例 95
4.5.2 使用带有Ribbon功能的Spring RestTemplate调用服务 97
4.5.3 使用Netflix Feign客户端调用服务 98
4.6 小结 100
第5章 使用Spring Cloud和NetflixHystrix的客户端弹性模式 101
5.1 什么是客户端弹性模式 102
5.1.1 客户端负载均衡模式 103
5.1.2 断路器模式 103
5.1.3 后备模式 103
5.1.4 舱壁模式 104
5.2 为什么客户端弹性很重要 104
5.3 进入Hystrix 107
5.4 搭建许可服务器以使用Spring Cloud和Hystrix 107
5.5 使用Hystrix实现断路器 109
5.5.1 对组织微服务的调用超时 111
5.5.2 定制断路器的超时时间 112
5.6 后备处理 113
5.7 实现舱壁模式 115
5.8 基础进阶—微调Hystrix 118
5.9 线程上下文和Hystrix 122
5.9.1 ThreadLocal与Hystrix 122
5.9.2 HystrixConcurrencyStrategy实战 125
5.10 小结 129
第6章 使用Spring Cloud和Zuul进行服务路由 131
6.1 什么是服务网关 132
6.2 Spring Cloud和Netflix Zuul简介 133
6.2.1 建立一个Zuul Spring Boot项目 134
6.2.2 为Zuul服务使用Spring Cloud注解 134
6.2.3 配置Zuul与Eureka进行通信 135
6.3 在Zuul中配置路由 135
6.3.1 通过服务发现自动映射路由 136
6.3.2 使用服务发现手动映射路由 137
6.3.3 使用静态URL手动映射路由 140
6.3.4 动态重新加载路由配置 142
6.3.5 Zuul和服务超时 143
6.4 Zuul的真正威力:过滤器 144
6.5 构建第 一个生成关联ID的Zuul前置过滤器 147
6.6 构建接收关联ID的后置过滤器 155
6.7 构建动态路由过滤器 157
6.7.1 构建路由过滤器的骨架 159
6.7.2 实现run()方法 159
6.7.3 转发路由 161
6.7.4 整合 162
6.8 小结 163
第7章 保护微服务 164
7.1 OAuth2简介 165
7.2 从小事做起:使用Spring和OAuth2来保护单个端点 167
7.2.1 建立EagleEye OAuth2验证服务 167
7.2.2 使用OAuth2服务注册客户端应用程序 168
7.2.3 配置EagleEye用户 171
7.2.4 验证用户 172
7.3 使用OAuth2保护组织服务 175
7.3.1 将Spring Security和OAuth2 jar添加到各个服务 176
7.3.2 配置服务以指向OAuth2验证服务 176
7.3.3 定义谁可以访问服务 177
7.3.4 传播OAuth2访问令牌 180
7.4 JSON Web Token与OAuth2 183
7.4.1 修改验证服务以颁发JWT令牌 184
7.4.2 在微服务中使用JWT 188
7.4.3 扩展JWT令牌 189
7.4.4 从JWT令牌中解析自定义字段 191
7.5 关于微服务安全的总结 193
7.6 小结 195
第8章 使用Spring Cloud Stream的事件驱动架构 196
8.1 为什么使用消息传递、EDA和微服务 197
8.1.1 使用同步请求-响应方式来传达状态变化 198
8.1.2 使用消息传递在服务之间传达状态更改 199
8.1.3 消息传递架构的缺点 201
8.2 Spring Cloud Stream简介 202
8.3 编写简单的消息生产者和消费者 205
8.3.1 在组织服务中编写消息生产者 205
8.3.2 在许可证服务中编写消息消费者 210
8.3.3 在实际操作中查看消息服务 213
8.4 Spring Cloud Stream用例:分布式缓存 214
8.4.1 使用Redis来缓存查找 215
8.4.2 定义自定义通道 221
8.4.3 将其全部汇集在一起:在收到消息时清除缓存 222
8.5 小结 223
第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪 224
9.1 Spring Cloud Sleuth与关联ID 225
9.1.1 将Spring Cloud Sleuth添加到许可证服务和组织服务中 226
9.1.2 剖析Spring Cloud Sleuth跟踪 226
9.2 日志聚合与Spring Cloud Sleuth 227
9.2.1 Spring Cloud Sleuth与Papertrail实现实战 229
9.2.2 创建Papertrail账户并配置syslog连接器 230
9.2.3 将Docker输出重定向到Papertrail 232
9.2.4 在Papertrail中搜索Spring Cloud Sleuth的跟踪ID 234
9.2.5 使用Zuul将关联ID添加到HTTP响应 235
9.3 使用Open Zipkin进行分布式跟踪 237
9.3.1 添加Spring Cloud Sleuth和Zipkin依赖项 238
9.3.2 配置服务以指向Zipkin 238
9.3.3 安装和配置Zipkin服务器 239
9.3.4 设置跟踪级别 240
9.3.5 使用Zipkin跟踪事务 241
9.3.6 可视化更复杂的事务 243
9.3.7 捕获消息传递跟踪 244
9.3.8 添加自定义跨度 246
9.4 小结 248
第 10章 部署微服务 250
10.1 EagleEye:在云中建立核心基础设施 251
10.1.1 使用亚马逊的RDS创建PostgreSQL数据库 253
10.1.2 在AWS中创建Redis集群 257
10.1.3 创建ECS集群 258
10.2 超越基础设施:部署EagleEye 262
10.3 构建和部署管道的架构 265
10.4 构建和部署管道实战 268
10.5 开始构建和部署管道:GitHub和Travis CI 270
10.6 使服务能够在Travis CI中构建 270
10.6.1 构建的核心运行时配置 273
10.6.2 安装预构建工具 275
10.6.3 执行构建 277
10.6.4 标记源代码 277
10.6.5 构建微服务并创建Docker镜像 279
10.6.6 将镜像推送到Docker Hub 279
10.6.7 在Amazon ECS中启动服务 280
10.6.8 启动平台测试 280
10.7 关于构建和部署管道的总结 282
10.8 小结 282
附录A 在桌面运行云服务 283
附录B OAuth2授权类型 291
这本关于 Spring 微服务的书,简直是我技术生涯中的一笔宝贵财富!我一直以来都对微服务架构充满兴趣,但总觉得入门门槛有点高,特别是涉及到分布式系统的一些核心挑战,比如如何保证数据的一致性、如何处理分布式事务、如何进行系统的容错和降级等等,这些问题让我望而却步。然而,这本书以一种非常务实的方式,将这些复杂的问题一一剖析,并且提供了切实可行的解决方案。书中对 Spring Boot 的集成以及 Spring Cloud 组件的运用讲解得非常深入,从最基础的 Eureka 服务注册中心,到 Hystrix 的熔断机制,再到 Zuul 的 API 网关,每个部分都讲解得细致入微,并且提供了大量的代码片段,可以直接拿来参考和实践。最让我印象深刻的是,书中并没有止步于理论讲解,而是非常注重实际操作,通过构建一个完整的微服务应用案例,将书中的知识点串联起来,让我能够更清晰地理解微服务架构的设计理念和实现细节。而且,书中的一些高级话题,比如容器化部署、持续集成和持续交付等,也都有所涉及,这对于我全面掌握微服务技术栈非常有帮助。
评分我是一名初学者,一直对微服务这个概念感到好奇,但又觉得它很遥远,学习起来无从下手。偶然间看到了这本书,抱着试试看的心态开始阅读,结果完全超出了我的预期!它用一种非常友好和易懂的方式,把我带进了微服务的世界。开篇就用通俗易懂的语言解释了什么是微服务,为什么需要微服务,以及微服务架构的优势。然后,它非常有条理地介绍了 Spring Cloud 这个强大的微服务开发框架,并且从最基础的服务注册与发现开始,一步步地引导我掌握了各种核心组件。书中的代码示例非常清晰,每一个步骤都配有详细的解释,让我这个新手也能轻松理解。我特别喜欢书中关于如何构建一个简单的微服务应用的过程,从零开始,一步步添加各个组件,直到最终形成一个可以运行的系统。这给我带来了巨大的成就感!而且,书中还穿插了一些关于微服务最佳实践的讲解,比如如何进行单元测试和集成测试,如何处理服务间的依赖关系,以及如何进行简单的日志收集。读完这本书,我对微服务不再感到陌生和畏惧,而是充满信心去尝试更多的实践。
评分天呐,我最近偶然间翻到一本关于 Spring 微服务的书,简直是我的救星!我之前一直被那些微服务架构搞得焦头烂额,概念多得像天上的星星数不清,各种组件、协议、模式让人眼花缭乱。每次尝试搭建一个简单的微服务系统,都要花费大量的时间去查资料、填坑,效率低得让人抓狂。尤其是当涉及到服务发现、负载均衡、熔断降级这些核心概念的时候,更是感到力不从心。这本书就像为我量身定做的一样,它的讲解方式非常直观,没有那些晦涩难懂的理论堆砌,而是通过大量的代码示例和实际案例,一步步地展示如何构建一个健壮、可扩展的微服务系统。我特别喜欢书中对 Spring Cloud 生态的梳理,各种组件之间的关系和使用场景都解释得清清楚楚,让我茅塞顿开。之前我总是把各个组件当成独立的点,现在总算能把它们串联成一条完整的线了。而且,书中还涵盖了许多实用的技巧和最佳实践,比如如何进行服务间的通信、如何实现数据的最终一致性、如何进行监控和日志收集等等。读完这本书,我感觉自己对微服务的理解上升了一个新的高度,再也不怕面对那些复杂的微服务挑战了。
评分这本书对我而言,更像是一本“问题解决指南”和“经验宝典”。我之前在多个项目中都尝试过引入微服务架构,但过程中遇到了各种各样棘手的问题,比如服务间通信的延迟高、数据不一致、系统稳定性差等等。很多时候,我只是在网络上零散地搜索解决方案,效率不高,而且很多方案并不适用于我的具体场景。这本书的出现,就像是为我打通了任督二脉。书中系统地梳理了微服务架构中常见的挑战,并且针对每一个挑战,都给出了详细的分析和多种可行的技术方案。例如,在处理分布式事务方面,书中不仅介绍了两种常见的模式(TCC 和 SAGA),还深入讲解了 Spring Cloud Alibaba Seata 的使用,以及如何在实际项目中进行权衡和选择。此外,书中对混沌工程、链路追踪(如 Sleuth 和 Zipkin)等方面的介绍,也让我看到了提升微服务系统稳定性和可观测性的新途径。我尤其欣赏书中对 DevOps 和云原生理念的融合,让微服务不再是孤立的技术点,而是能够与整个软件开发和运维流程紧密结合。这本书的内容非常全面,而且紧贴实际生产环境的需求,对于希望构建真正健壮、可维护的微服务系统的开发者来说,是不可多得的参考。
评分不得不说,这本书对于我这样一个在微服务领域摸爬滚打多年的开发者来说,依然带来了很多惊喜和启发。我之前虽然有接触过一些微服务相关的技术,但总感觉像是碎片化的知识,不成体系。这本书的出现,彻底改变了我的认知。它不仅仅是对 Spring Cloud 组件的简单罗列和使用介绍,更是深入剖析了微服务架构的设计原则和演进思路。书中对不同场景下微服务组件的选择和搭配,提供了非常独到的见解。例如,在讨论服务间通信时,书中不仅介绍了 RESTful API,还深入讲解了消息队列(如 Kafka)在异步通信和解耦方面的优势,以及如何在 Spring Boot 应用中优雅地集成它们。此外,书中关于如何构建高可用、高性能的微服务系统,也给出了很多实用的指导,比如如何进行分布式配置管理,如何实现分布式事务,以及如何进行有效的服务治理和监控。我尤其欣赏书中对安全性方面的探讨,如何在微服务环境中实现认证、授权和数据加密,这些都是非常关键但又容易被忽略的环节。这本书的内容非常有深度,非常适合那些想要深入理解微服务架构,并且希望将其应用到实际项目中的开发者。
评分还行,,,,,,,,。。。。。。
评分很好的书,对提高java水平很有帮助!!!
评分计算机半价买了很多,京东很强大
评分不错,为数不多的微服务书籍。
评分完美的搭配,太喜欢了……
评分还不错,还不错,还不错,还还不错,错,
评分好好好好好好好好好好好好好好好
评分在京东买很快捷方便,活动时买更划算,满意
评分昨天下单,今天就到了,很好,书都是包装好的,书的质量不错,好好学习吧。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有