新書推薦:
《
构建未来教育图景:实践以学生为中心的育人模式
》
售價:HK$
87.4
《
技术统治(未来哲学系列)
》
售價:HK$
53.8
《
中考热点作家孙道荣2024年散文精选集三册
》
售價:HK$
127.7
《
全球城市案例研究2023:基于网络的合作与竞争国际经验借鉴
》
售價:HK$
199.4
《
引爆:炸药、硝酸盐和现代世界的形成
》
售價:HK$
85.1
《
人类星球:我们如何创造了人类世(企鹅·鹈鹕丛书013)
》
售價:HK$
91.8
《
伏候圣裁:中国古代的君主与政治
》
售價:HK$
98.6
《
艺术图像学研究(第一辑)
》
售價:HK$
188.2
|
編輯推薦: |
《Spring Boot微服务实战 使用RabbitMQ、Eureka、Ribbon、Zuul和Cucumber开发RESTful服务》使用Spring Boot构建微服务架构,将一个应用从小单体演进到包含多个服务的事件驱动架构。本书遵循增量式的方法来讲解微服务结构、测试驱动开发、Eureka、Ribbon、Zuul,以及使用Cucumber编写的端到端测试。
作者Moises Macero用非常务实的方式解释了这种软件架构的好处,而不是让你被理论概念分散注意力。他从实战的角度介绍了计算机编程中的一些先进技术。从*小可行的产品开始,同时保持灵活性,使其不断发展。
|
內容簡介: |
主要内容:
◇ 使用Spring Boot 构建微服务
◇ 使用事件驱动架构,通过RabbitMQ实现消息机制
◇ 使用Spring创建RESTful服务
◇ 使用Eureka掌握服务发现,使用Ribbon掌握负载均衡
◇ 使用Zuul路由请求并将其作为API网关
◇ 使用Cucumber为事件驱动架构编写端到端测试
◇ 进行持续集成和部署
|
關於作者: |
从孩童开始,Moises Macero就对软件开发有浓厚的兴趣。他曾就职于一些大公司和创业公司,对于这些公司,全栈开发者是必不可少的。在Moises的职业生涯中,他经常为大小项目的开发、设计和架构而努力工作,包括敏捷和瀑布环境下的项目。他喜欢在不仅能指导他人,也能从他人身上学习的团队中工作。
Moises在他的博客上分享了很多有关技术挑战的解决方案、指南及对IT公司工作方式的观点。在空闲时间里,他喜欢徒步旅行。
|
目錄:
|
目 录
第1 章 介绍1
1.1 设置场景1
1.2 读者对象2
1.3 本书与其他图书和指南有何区别2
1.3.1 工具背后的论证2
1.3.2 学习:渐进的过程3
1.3.3 这是一本指南还是一本图书3
1.4 本书内容3
1.4.1 从基础知识到高级话题3
1.4.2 搭建Spring Boot骨架的专业方式4
1.4.3 测试驱动开发4
1.4.4 连接微服务4
1.4.5 事件驱动的系统5
1.4.6 端到端测试5
1.5 本章小结5
第2 章 一个基本的Spring Boot应用7
2.1 业务需求7
2.2 骨架应用8
2.2.1 轻薄应用与真实应用8
2.2.2 创建应用骨架8
2.3 热身:一些TDD的实战10
2.4 本章小结16
第3 章 一个真实的三层Spring Boot 应用17
3.1 简介17
3.2 完成基本功能18
3.3 领域设计24
3.4 业务逻辑层28
3.5 展示层REST API30
3.5.1 Multiplication Controller31
3.5.2 Results控制器35
3.6 前端Web客户端38
3.7 试玩第1部分42
3.8 数据持久化的新需求43
3.9 重构代码45
3.10 数据层50
3.10.1 数据模型51
3.10.2 资源库56
3.11 完成第二个用户故事:串联所有层63
3.12 畅玩应用第2部分69
3.13 本章小结71
第4 章 初识微服务73
4.1 小单体之路73
4.1.1 单体分析75
4.1.2 继续前进76
4.2 游戏化基础77
4.2.1 分数、徽章和排行榜77
4.2.2 应用游戏化技术78
4.3 转向微服务架构78
4.3.1 职责分离和松耦合78
4.3.2 独立变更79
4.3.3 伸缩性79
4.4 连接不同的微服务80
4.5 事件驱动架构81
4.5.1 相关技术81
4.5.2 事件驱动架构的优缺点82
4.5.3 深入阅读84
4.5.4 应用事件驱动架构84
4.6 使用RabbitMQ和Spring AMQP实现事件驱动85
4.6.1 在系统中使用RabbitMQ86
4.6.2 Spring AMQP86
4.7 从乘法微服务发送事件87
4.7.1 RabbitMQ配置87
4.7.2 对事件建模89
4.7.3 发送事件:分发器模式91
4.7.4 深入新游戏化微服务95
4.8 使用RabbitMQ接收事件111
4.8.1 订阅者111
4.8.2 RabbitMQ配置111
4.8.3 事件处理程序114
4.9 在微服务之间请求数据115
4.9.1 结合反应式模式和REST115
4.9.2 保持领域隔离117
4.9.3 实现REST客户端119
4.9.4 更新游戏化业务逻辑123
4.10 使用微服务126
4.11 本章小结128
第5 章 使用工具的微服务架构131
5.1 介绍131
5.2 抽取UI部分,并连接游戏化服务132
5.2.1 移动静态内容133
5.2.2 连接UI和游戏化服务134
5.2.3 改变现有服务136
5.2.4 全新的、更好的UI,而且几乎不需要额外的代价139
5.3 当前架构146
5.4 服务发现和负载均衡147
5.4.1 服务发现147
5.4.2 负载均衡149
5.4.3 多语言系统、Eureka以及 Ribbon151
5.5 通过API网关路由153
5.5.1 API网关模式153
5.5.2 让Zuul、Eureka和Ribbon一起工作156
5.6 动手准则158
5.6.1 使用Zuul实现API网关158
5.6.2 使用服务发现172
5.6.3 微服务准备好扩展了吗174
5.6.4 通过Ribbon实现负载均衡176
5.7 断路器和REST客户端183
5.7.1 Hystrix断路器183
5.7.2 Hystrix和Zuul183
5.7.3 来自REST客户端的Hystrix186
5.7.4 使用Feign的REST消费者189
5.8 微服务模式和PaaS189
5.9 本章小结190
第6 章 测试分布式系统193
6.1 介绍193
6.2 设置场景194
6.3 Cucumber的工作方式195
6.4 动手准则197
6.4.1 创建一个空项目并选择工具197
6.4.2 让系统可测试200
6.4.3 编写第一个Cucumber测试207
6.4.4 把功能测试连接到Java代码210
6.4.5 支持类218
6.4.6 在feature之间重用步骤223
6.4.7 运行测试并检查报告225
6.5 本章小结226
附录A 升级到Spring Boot 2.0229
A.1 介绍229
A.2 升级依赖项229
A.3 修复已破坏的变化232
A.3.1 CrudRepository接口不包含findOne方法232
A.3.2 actuator端点被移动233
A.4 应用可选的更新234
A.5 使用Spring Boot 2.0234
后记235
|
內容試閱:
|
译 者 序
虽然市面上已经有了很多讲解Spring Boot的图书,但是《Spring Boot微服务实战》绝对会给你带来不一样的体验。Moises Macero没有把《Spring Boot微服务实战》写得像一本使用手册一样面面俱到,也没有一上来就直接给出一个完整的微服务架构设计,然后把这个架构设计实现出来,而是像一本微服务开发者的旅行小说,带着读者一起探索微服务世界,在旅途中一起面临问题,然后一起解决问题,这样一步步用演进方式给读者呈现出最终的微服务架构设计。
这个旅途从一个业务基本需求开始,作者按照敏捷开发的方式写出了第一个用户故事并拆分出具体任务,然后使用测试驱动开发Test-Driven Development,TDD的方法实现了基本业务逻辑。紧接着用了一章篇幅详细介绍了一个Spring Boot应用的三层架构体系,并基于这个架构实现了从界面到数据库的一个完整功能。随着需求的不断增加,发现新需求不适合放在原来的应用中,于是介绍了解决这种问题的方案:多个微服务架构。实现了多个微服务以后又发现了新问题,于是开始一个个地介绍解决这些问题的工具,并把这些工具实现到系统中。最后针对复杂的微服务架构系统,发现很难进行端到端测试,因此又带着读者一起使用业务驱动开发Business-Driven Development,BDD的方法实现了微服务系统的端到端测试。在整个旅途中,作者在每次解决问题之前,都会深入浅出地解释为什么要这样解决。这好像在旅游时一位经验丰富的导游在给你讲解每个景点背后的故事,以及到达景点为什么要走这条路。
希望读者不仅从《Spring Boot微服务实战》学到如何使用Spring Boot实现微服务,而能够通过《Spring Boot微服务实战》更深入地理解很多微服务的底层逻辑,掌握了这套逻辑就能够使用其他开发语言或者框架实现微服务架构系统。这些年大部分公司都在把传统IT系统的单体架构转型成微服务架构。而基于越来越多的微服务,数字化中台这个概念开始越来越火,很多公司都提出要建设中台。构建中台的一个个微服务,每个微服务都代表企业的某种业务能力,这些业务能力通过微服务改造变成数字化服务后,企业就可以很容易地复用这些业务能力来响应业务诉求,并通过扩展微服务的方式来支持业务规模的迅速扩张。不论是微服务架构还是数字化中台,都不仅是专有的技术概念,而是一个企业在数字化时代需要具备的新技能。
下面这个图是译者提出的数字化中台全景,在《Spring Boot微服务实战》中作者提到的服务发现、API网关、负载均衡、服务容错等概念都能够在这个全景图中找到对应的位置。
《Spring Boot微服务实战》全部章节由张渊与和坚翻译,在这里要感谢清华大学出版社的编辑,他们为《Spring Boot微服务实战》的翻译投入了巨大的热情并付出了很多心血。没有他们的帮助和严谨的要求,《Spring Boot微服务实战》不可能顺利付梓。还要感谢译者的家人们,他们给予的支持保证了译者在工作之余能投入足够的时间和精力进行翻译和校对。
《Spring Boot微服务实战》涉及了大量的实践和专业术语,译者力求翻译得准确易懂。但毕竟水平有限,错误和失误在所难免,如有任何意见和建议,请不吝指正。感激不尽!
译 者
|
|