当前位置:主页 > 书籍配套资源 > Spring配套资源
《Spring微服务实战》代码资源

《Spring微服务实战》代码资源

  • 更新:2021-08-12
  • 大小:1.63 MB
  • 类别:Spring
  • 作者:(美)约翰·卡内尔(John、Carne
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

适读人群 :本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。
微服务将代码分解为小型的、分布式的独立服务,这些服务需要深谋远虑和仔细设计。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的项目为主线,介绍云、微服务等概念以及SpringBoot和SpringCloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并很终自动部署到云环境(Amazon)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定SpringCloud子项目或其他工具解决这些问题。
本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。

作者简介

约翰·卡内尔,是一位资历云工程师,拥有20年的Java开发经验。他大部分时间都在使用AWS平台构建基于电话的微服务。他的日常工作主要是设计和构建跨Java、Clojure和Go等多种技术平台的微服务。

目录

  • 第1章欢迎迈入云世界,Spring1
  • 1.1什么是微服务1
  • 1.2什么是Spring,为什么它与微服务有关4
  • 1.3在本书中读者会学到什么5
  • 1.4为什么本书与你有关6
  • 1.5使用SpringBoot来构建微服务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使用SpringCloud构建微服务22
  • 1.10.1SpringBoot23
  • 1.10.2SpringCloudConfig23
  • 1.10.3SpringCloud服务发现24
  • 1.10.4SpringCloud与NetflixHystrix和NetflixRibbon24
  • 1.10.5SpringCloud与NetflixZuul24
  • 1.10.6SpringCloudStream24
  • 1.10.7SpringCloudSleuth24
  • 1.10.8SpringCloudSecurity25
  • 1.10.9代码供应25
  • 1.11通过示例来介绍SpringCloud25
  • 1.12确保本书的示例是有意义的27
  • 1.13小结28
  • 第2章使用SpringBoot构建微服务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引导SpringBoot应用程序:编写引导类39
  • 2.3.3构建微服务的入口:SpringBoot控制器40
  • 2.4DevOps工程师的故事:构建运行时的严谨性44
  • 2.4.1服务装配:打包和部署微服务46
  • 2.4.2服务引导:管理微服务的配置47
  • 2.4.3服务注册和发现:客户端如何与微服务通信48
  • 2.4.4传达微服务的“健康状况”49
  • 2.5将视角综合起来51
  • 2.6小结52
  • 第3章使用SpringCloud配置服务器控制配置53
  • 3.1管理配置(和复杂性)54
  • 3.1.1配置管理架构55
  • 3.1.2实施选择56
  • 3.2构建SpringCloud配置服务器58
  • 3.2.1创建SpringCloudConfig引导类61
  • 3.2.2使用带有文件系统的SpringCloud配置服务器62
  • 3.3将SpringCloudConfig与SpringBoot客户端集成64
  • 3.3.1建立许可证服务对SpringCloudConfig服务器的依赖65
  • 3.3.2配置许可证服务以使用SpringCloudConfig66
  • 3.3.3使用SpringCloud配置服务器连接数据源69
  • 3.3.4使用@Value注解直接读取属性72
  • 3.3.5使用SpringCloud配置服务器和Git73
  • 3.3.6使用SpringCloud配置服务器刷新属性73
  • 3.4保护敏感的配置信息75
  • 3.4.1下载并安装加密所需的OracleJCEjar75
  • 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和NetflixEureka进行服务发现实战87
  • 4.3构建SpringEureka服务88
  • 4.4通过SpringEureka注册服务90
  • 4.5使用服务发现来查找服务93
  • 4.5.1使用SpringDiscoveryClient查找服务实例95
  • 4.5.2使用带有Ribbon功能的SpringRestTemplate调用服务97
  • 4.5.3使用NetflixFeign客户端调用服务98
  • 4.6小结100
  • 第5章使用SpringCloud和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进入Hystrix107
  • 5.4搭建许可服务器以使用SpringCloud和Hystrix107
  • 5.5使用Hystrix实现断路器109
  • 5.5.1对组织微服务的调用超时111
  • 5.5.2定制断路器的超时时间112
  • 5.6后备处理113
  • 5.7实现舱壁模式115
  • 5.8基础进阶—微调Hystrix118
  • 5.9线程上下文和Hystrix122
  • 5.9.1ThreadLocal与Hystrix122
  • 5.9.2HystrixConcurrencyStrategy实战125
  • 5.10小结129
  • 第6章使用SpringCloud和Zuul进行服务路由131
  • 6.1什么是服务网关132
  • 6.2SpringCloud和NetflixZuul简介133
  • 6.2.1建立一个ZuulSpringBoot项目134
  • 6.2.2为Zuul服务使用SpringCloud注解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.5Zuul和服务超时143
  • 6.4Zuul的真正威力:过滤器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.1OAuth2简介165
  • 7.2从小事做起:使用Spring和OAuth2来保护单个端点167
  • 7.2.1建立EagleEyeOAuth2验证服务167
  • 7.2.2使用OAuth2服务注册客户端应用程序168
  • 7.2.3配置EagleEye用户171
  • 7.2.4验证用户172
  • 7.3使用OAuth2保护组织服务175
  • 7.3.1将SpringSecurity和OAuth2jar添加到各个服务176
  • 7.3.2配置服务以指向OAuth2验证服务176
  • 7.3.3定义谁可以访问服务177
  • 7.3.4传播OAuth2访问令牌180
  • 7.4JSONWebToken与OAuth2183
  • 7.4.1修改验证服务以颁发JWT令牌184
  • 7.4.2在微服务中使用JWT188
  • 7.4.3扩展JWT令牌189
  • 7.4.4从JWT令牌中解析自定义字段191
  • 7.5关于微服务安全的总结193
  • 7.6小结195
  • 第8章使用SpringCloudStream的事件驱动架构196
  • 8.1为什么使用消息传递、EDA和微服务197
  • 8.1.1使用同步请求-响应方式来传达状态变化198
  • 8.1.2使用消息传递在服务之间传达状态更改199
  • 8.1.3消息传递架构的缺点201
  • 8.2SpringCloudStream简介202
  • 8.3编写简单的消息生产者和消费者205
  • 8.3.1在组织服务中编写消息生产者205
  • 8.3.2在许可证服务中编写消息消费者210
  • 8.3.3在实际操作中查看消息服务213
  • 8.4SpringCloudStream用例:分布式缓存214
  • 8.4.1使用Redis来缓存查找215
  • 8.4.2定义自定义通道221
  • 8.4.3将其全部汇集在一起:在收到消息时清除缓存222
  • 8.5小结223
  • 第9章使用SpringCloudSleuth和Zipkin进行分布式跟踪224
  • 9.1SpringCloudSleuth与关联ID225
  • 9.1.1将SpringCloudSleuth添加到许可证服务和组织服务中226
  • 9.1.2剖析SpringCloudSleuth跟踪226
  • 9.2日志聚合与SpringCloudSleuth227
  • 9.2.1SpringCloudSleuth与Papertrail实现实战229
  • 9.2.2创建Papertrail账户并配置syslog连接器230
  • 9.2.3将Docker输出重定向到Papertrail232
  • 9.2.4在Papertrail中搜索SpringCloudSleuth的跟踪ID234
  • 9.2.5使用Zuul将关联ID添加到HTTP响应235
  • 9.3使用OpenZipkin进行分布式跟踪237
  • 9.3.1添加SpringCloudSleuth和Zipkin依赖项238
  • 9.3.2配置服务以指向Zipkin238
  • 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.1EagleEye:在云中建立核心基础设施251
  • 10.1.1使用亚马逊的RDS创建PostgreSQL数据库253
  • 10.1.2在AWS中创建Redis集群257
  • 10.1.3创建ECS集群258
  • 10.2超越基础设施:部署EagleEye262
  • 10.3构建和部署管道的架构265
  • 10.4构建和部署管道实战268
  • 10.5开始构建和部署管道:GitHub和TravisCI270
  • 10.6使服务能够在TravisCI中构建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将镜像推送到DockerHub279
  • 10.6.7在AmazonECS中启动服务280
  • 10.6.8启动平台测试280
  • 10.7关于构建和部署管道的总结282
  • 10.8小结282
  • 附录A在桌面运行云服务283
  • 附录BOAuth2授权类型291

资源下载

资源下载地址1:https://box.lenovo.com/l/H1ftNZ

相关资源

网友留言