Spring Cloud微服务实战

释放双眼,带上耳机,听听看~!

网站

更多书籍点击进入>> CiCi岛

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

  • 电子书下载(皮皮云盘-点击“普通下载”)
  • 购买正版

封页

Spring Cloud微服务实战

编辑推荐

√ Spring Cloud是集微服务框架之大成的“全家桶” √ 深入剖析核心组件,透过实例|源码剖析运行原理 √ 简明上手,指导以极低开发成本实现搭建微服务架构 √ 作者亲历大量生产实践,为该技术社区繁荣主要推动者

内容简介

《Spring Cloud微服务实战》从时下流行的微服务架构概念出发,详细介绍了Spring Cloud针对微服务架构中几大核心要素的解决方案和基础组件。对于各个组件的介绍,《Spring Cloud微服务实战》主要以示例与源码结合的方式来帮助读者更好地理解这些组件的使用方法以及运行原理。同时,在介绍的过程中,还包含了作者在实践中所遇到的一些问题和解决思路,可供读者在实践中作为参考。 《Spring Cloud微服务实战》适合所有Java开发人员,尤其适合正在做微服务架构技术选型或正在实施微服务架构的团队查阅和参考。

作者简介

本书作者文字水平较高,行文流畅,且工作在编程第一线,拥有扎实的理论基础和实践经验,相信会为读者奉上一本质量上乘的图书。

目 录

目录

第1章 基础知识 1
什么是微服务架构 1
与单体系统的区别 1
如何实施微服务 2
为什么选择Spring Cloud 6
Spring Cloud简介 7
版本说明 8

第2章 微服务构建:Spring Boot 11
框架简介 12
快速入门 13
项目构建与解析 13
实现RESTful API 17
配置详解 20
配置文件 20
自定义参数 22
参数引用 22
使用随机数 23
命令行参数 23
多环境配置 24
加载顺序 25
监控与管理 26
初识actuator 27
原生端点 28
小结 38

第3章 服务治理:Spring Cloud Eureka 39
服务治理 39
Netflix Eureka 40
搭建服务注册中心 41
注册服务提供者 43
高可用注册中心 46
服务发现与消费 48
Eureka详解 51
基础架构 52
服务治理机制 52
源码分析 56
配置详解 65
服务注册类配置 65
服务实例类配置 67
跨平台支持 71

第4章 客户端负载均衡:Spring Cloud Ribbon 73
客户端负载均衡 73
RestTemplate详解 75
GET请求 75
POST请求 77
PUT请求 79
DELETE请求 79
源码分析 80
负载均衡器 91
负载均衡策略 109
配置详解 123
自动化配置 124
Camden版本对RibbonClient配置的优化 125
参数配置 127
与Eureka结合 127
重试机制 128

第5章 服务容错保护:Spring Cloud Hystrix 130
快速入门 131
原理分析 135
工作流程 135
断路器原理 144
依赖隔离 148
使用详解 151
创建请求命令 151
定义服务降级 154
异常处理 157
命令名称、分组以及线程池划分 158
请求缓存 159
请求合并 166
属性详解 172
Command属性 174
collapser属性 184
threadPool属性 185
Hystrix仪表盘 187
Turbine集群监控 192
构建监控聚合服务 192
与消息代理结合 196

第6章 声明式服务调用:Spring Cloud Feign 199
快速入门 200
参数绑定 202
继承特性 205
Ribbon配置 209
全局配置 209
指定服务配置 209
重试机制 210
Hystrix配置 211
全局配置 211
禁用Hystrix 211
指定命令配置 212
服务降级配置 212
其他配置 214
请求压缩 214
日志配置 215

第7章 API网关服务:Spring Cloud Zuul 217
快速入门 219
构建网关 220
请求路由 221
请求过滤 223
路由详解 226
传统路由配置 226
服务路由配置 228
服务路由的默认规则 229
自定义路由映射规则 229
路径匹配 230
路由前缀 233
本地跳转 234
Cookie与头信息 235
Hystrix和Ribbon支持 236
过滤器详解 238
过滤器 238
请求生命周期 239
核心过滤器 240
异常处理 244
禁用过滤器 256
动态加载 257
动态路由 257
动态过滤器 261

第8章 分布式配置中心:Spring Cloud Config 267
快速入门 267
构建配置中心 268
配置规则详解 269
客户端配置映射 272
服务端详解 274
基础架构 274
Git配置仓库 276
SVN配置仓库 279
本地仓库 279
本地文件系统 279
健康监测 280
属性覆盖 281
安全保护 281
加密解密 282
高可用配置 286
客户端详解 286
URI指定配置中心 287
服务化配置中心 287
失败快速响应与重试 290
获取远程配置 292
动态刷新配置 293

第9章 消息总线:Spring Cloud Bus 295
消息代理 295
RabbitMQ实现消息总线 296
基本概念 297
安装与使用 298
快速入门 302
整合Spring Cloud Bus 306
原理分析 307
指定刷新范围 308
架构优化 309
RabbitMQ配置 310
Kafka实现消息总线 312
Kafka简介 312
快速入门 313
整合Spring Cloud Bus 315
Kafka配置 318
深入理解 318
源码分析 320
其他消息代理的支持 342

第10章 消息驱动的微服务:Spring Cloud Stream 344
快速入门 344
核心概念 349
绑定器 350
发布-订阅模式 351
消费组 353
消息分区 354
使用详解 355
开启绑定功能 355
绑定消息通道 356
消息生产与消费 360
响应式编程 366
消费组与消息分区 368
消息类型 370
绑定器详解 373
绑定器SPI 373
自动化配置 374
多绑定器配置 374
RabbitMQ与Kafka绑定器 376
配置详解 376
基础配置 377
绑定通道配置 377
绑定器配置 379
第11章 分布式服务跟踪:Spring Cloud Sleuth 386
快速入门 386
准备工作 386
实现跟踪 389
跟踪原理 390
抽样收集 392
与Logstash整合 394
与Zipkin整合 397
HTTP收集 398
消息中间件收集 402
收集原理 404
数据存储 414
API接口 417
附录A Starter POMs 419
后记 421

前 言

推荐序一

我和Java很有缘,2003年在富士通南大实习的时候,就开始用Struts/JSP/Hibernate/MySQL做第一个Java项目——SPIF(http://www.fujitsu.com/cn/products/software/applications/ spif/)。

工作之后,主要做J2EE的开发,并开始慢慢接触和使用Spring。加入EMC之后,很有幸和Spring成为一个大家庭(EMC收购了VMware,VMware收购了Spring)。2012年,我和Spring Data/XD的负责人Mark Pollack在中国开过一次小会,和他探讨了一些关于Data Pipeline的想法。后来我也看了很多Josh Long(龙应春)的演讲视频,并在2016年终于有幸能够与他在一个技术大会上同场演讲,并在会议之后做了很多深入沟通。

2015年上半年,我读了两本书:The Phoenix Project和Migrating to Cloud-Native Application Architectures,让我对DevOps、微服务和云原生架构有了初步的认识,也让我对Netflix的那套OSS套件有了一个初步印象。

我是在2015年9月加入麻袋理财之后开始接触Spring Boot的,试用之后感觉它很神奇,再也没有被Spring之前那些烦琐配置所束缚。当时正好和一个架构师讨论要做一个项目的升级改造,决定采用Spring Boot和微服务架构。开始的时候,服务治理还是用了Dubbo。之后因为对Spring Cloud有了比较深刻的认识,在之后一个全新项目上,我们完全按照微服务架构,使用Spring Boot和Cloud进行开发,并采用CI/CD自动化流程和容器化部署。

因为使用了Spring Cloud,让我对Spring Cloud的相关信息特别关注。一个偶然的机会,我认识了Spring Cloud中国社区的负责人许进、翟永超(本书作者)和周立,探讨了很多使用Spring Cloud的经验,感觉与他们和Spring Cloud相见恨晚。

翟永超本人写了很多关于Spring Cloud使用的博客,不同于一般作者,他写的内容更加贴近实际,是自己工作经验的深刻总结,可以拿来直接用于生产。

有一次我们聊到关于配置中心(Spring Cloud Config)如何在生产中使用,他解答了我很多问题,并告诉我他写了一本书,书中就会包含这些内容。这让我对这本书充满期待。后面也有幸见到了本人,一个瘦瘦高高的书生,一看就是一个很有内涵的技术人。畅聊之后,翟永超就把书发给了我,让我先睹为快。

我把翟永超的书仔细拜读了一遍,最大的收获就是让我对Spring Cloud的认识又上升了一个层次。我之前对Spring Cloud的理解更多的是知其然,但是却不知道其所以然,对Spring Cloud里面的逻辑知之甚少。而读了翟永超的《Spring Cloud微服务实战》一书后,让我对Spring Cloud各个组件的认识提升了一个层次,同时也让我对Spring Cloud各个组件的实现原理有了初步的认识,因此我建议所有打算将Spring Cloud用于生产的朋友一定要好好读一下这本书。

王天青

DaoCloud 首席架构师

2017年3月

 

推荐序二

2016年10月开始,我在冰鉴科技负责微服务架构迁移相关的调研和筹建工作。我比较了Dubbo、Dubbox、Motan、Spring Cloud等框架后,最终锁定在Spring Cloud上。这是一个非常年轻的框架,关于它的中文文档少之又少,更不用说有深度的技术干货了。

当我的团队在利用搜索引擎进行相关检索时,永超的技术博客十分显眼地排在了前列,我非常感激他贡献的这个系列的文章,这在我们团队做微服务架构迁移的工作中,起到了关键作用。后来有一天,我俩在一个架构群中相识,一番讨论后发现是博主本人并且他有写书计划时,我告诉了我的团队,我们不谋而合地决定要在该书出版时迅速收入囊中,做到人手一本。而今天对于我来说更是非常荣幸,能够给永超的新书写推荐序。

Spring Cloud是一个微服务架构实施的综合性解决框架,而在如何构建微服务的选择上,由于我们团队是从SSM(Spring Spring MVC MyBatis)框架开始演进的,基于让演进中改动最小的初衷,我们决定使用Spring Boot做微服务构建。我们从对Spring Boot的调研开始就一直关注着永超的技术博客,在第一次接触 Spring Boot 的时候就被它“习惯优于配置”的设计概念深深吸引,这无疑简化了做业务逻辑开发同事的工作量,也使得他们可以不用关注配置细节。本书中也有关于Spring Boot基础知识的详细讲解以及一个案例工程带你快速构建属于你的第一个微服务。

如开头所述,为了将系统微服务化,我们也一直在对 Spring Cloud 进行相关调研。这本书也是国内市场上为数不多的、全面讲解 Spring Cloud 微服务的中文图书。详细讲解了 Spring Cloud 生态的各类组件,涵盖了服务治理组件 Eureka、客户端负载均衡组件 Ribbon、服务容错保护组件Hystrix、声明式服务调用组件 Feign、API 网关治理组件Zuul、分布式配置中心组件 Config、消息总线组件 Bus、消息驱动组件 Stream、分布式服务跟踪组件 Sleuth。这包含了我们在实施微服务中需要深入了解的各个轮子,是一本需要仔细研读,反复阅读的精品之作。

最后,预祝永超在Spring Cloud的学习和工作中再创佳绩,也希望读者朋友能够在阅读完本书后快速地搭建好实施微服务过程中的基础脚手架,并在未来工作中能够将团队的一些实践通过Spring Cloud中国社区进行交流,为开源贡献自己的一份力量。

朱清

冰鉴科技信息技术部总监

Spring Cloud中国社区联合创始人

2017.03.27

 

推荐序三

收到本书作者翟永超的邀请为这本书写推荐序,其实我是很谨慎的。抱着对读者负责、对技术严谨的态度,不能在完全不懂Spring Cloud的基础上妄加评论。就像2009年的云计算和现在的大数据,“Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.”所以概读了书中的内容,的确是一本好书,特别是在基于技术实践的阐述中又不失对“微服务化”理论层面的讲解以及发展演进过程的说明。

结合在云计算行业中为大量企业级客户做的服务案例,“集中化”的系统架构确实在企业级客户中受到越来越多的挑战,随着业务变化对IT需求的不断增加,处于逐渐失控的状态。CIO们受到越来越大的挑战,希望做到数据驱动业务,那第一个阶段就要做去中心化的改造。如书中所阐述,“微服务化”其实并不是简单的技术革新,而是对团队组织,系统架构,系统研发,自动化测试、发布、运维都提出了一系列的变革要求。所以我觉得,不管是架构师、运维经理、研发主管还是CIO都可以从本书中有所收获。

同样,阿里云的企业级中间件EDAS(基于阿里系的Dubbo开源项目)配合强大的飞天云平台与Docker服务的支持,在大中型企业客户中得到更多的验证,如森马服饰、来伊份、正佳广场、中石化的易派客电商平台等。与这些商业化的中间件产品相比,Spring Cloud得到了更多热衷开源项目的人的支持,相信在有足够团队技术能力的保障下,也会取得越来越多成功案例。书如其人,值得认真拜读,我会推荐给更多的人,为翟永超点赞。

李俊涛

上海驻云科技执行总监

媒体评论

本书从时下流行的微服务架构概念出发,结合Spring Cloud的解决方案,深入浅出地剖析了其在构建微服务架构中所需的各个基础设施和技术要点,包括服务治理、容错保护、API网关、配置管理、消息总线等。作者不仅对如何使用各个组件做了详细介绍,还从原理上做了很多分析,可以帮助读者更好地理解Spring Cloud的运行原理,这有助于我们在实战中有效地排错和做进一步扩展。本书是微服务架构方面非常不错的实战书籍,强烈推荐正在做微服务实践或打算实施微服务的团队作为参考资料。
南志文
百联全渠道研发总监

Spring Cloud的诞生对于没有足够资金投入或者技术储备实力的技术团队是一种福音。利用Spring Cloud的一站式解决方案,可以很轻松地搭建起微服务架构的软件系统,大大减少了开发成本,从容应对业务的快速发展。本书是国内*本Spring Cloud的实战书籍,给我带来了无限惊喜。作者由浅入深地讲解了基于Spring Cloud构建微服务所需要的各个核心组件,并配有大量实战代码,理论和实践兼备,读后收获颇丰。强烈推荐给每一位对Spring Cloud感兴趣或是打算使用Spring Cloud的技术人员阅读。
覃罗春
德比软件产品开发负责人

当下*火的词无外乎就是“微服务”了,但是很多创业公司想要实现微服务架构体系还需要做很多方面的工作才可以逐步实现,所需花费的成本还是较大的。而近年来Spring boot/Cloud生态架构体系的出现为行业提供了一站式解决方案,解决了不少公司的架构选型和维护方面的难题。本书是国内*本以Spring Cloud为技术蓝本的微服务类实战书籍,不仅结合实际案例介绍了Spring Cloud的使用,还从源码的角度深入分析了原理实现,强烈推荐每一位开发者和架构师收藏和学习。
程超
合众支付资深技术专家

随着微服务架构的兴起,企业IT架构开始变革,国内出现首批微服务实战布道者。本书作者翟永超,作为Spring Cloud中国社区联合发起人和国内首批Spring Cloud实践与布道者,发表的博文超过数百万次访问量。他的《Spring Cloud微服务实战》一书,累积了大量生产实战经验,把Spring Cloud常用组件通过案例剖析,可帮助企业和开发者快速实施微服务架构。
许进(xujin.org)
Spring Cloud中国社区创始人
中间件高级研发工程师

近几年,微服务概念逐渐深入人心。国内各家互联网公司都引入了相应的实践。而被应用*多的就是Spring Cloud这套被戏称为“全家桶”的微服务框架。它几乎实现了所有微服务的功能实践,而且又完美符合微服务的基础理论,可帮助大家提高工作效率。但是,国内关于Spring Cloud的中文资料相对比较匮乏,很多学习者遍寻入门而不得。在此大背景下,有一些有识之士无私贡献了自己的绵薄之力,本书作者翟永超就是其中一位。这本书对于广大需要在公司中实践微服务的人们来说*是一本可以快速上手实现微服务的工作手册。我希望这本书犹如一颗种子,能在国内互联网环境的土壤中生根发芽,*后变成一棵参天大树。
吴峻申
上海青客机器人有限公司架构师

给TA打赏
共{{data.count}}人
人已打赏
安全经验

独立博客怎样申请谷歌Adsense

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索