您好,欢迎来到聚文网。 登录 免费注册
Spring微服务实战(第2版)

Spring微服务实战(第2版)

  • 字数: 515000
  • 装帧: 平装
  • 出版社: 人民邮电出版社
  • 作者: (美)约翰·卡内尔,(哥斯)伊拉里·华卢波·桑切斯
  • 出版日期: 2022-05-01
  • 商品条码: 9787115587480
  • 版次: 2
  • 开本: 16开
  • 页数: 380
  • 出版年份: 2022
定价:¥109.9 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
1.本书将O-stock项目拆解划分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署。 2.作者在十几年的计算机工作中一直致力于软件开发,使用不同的语言和不同类型的软件架构,一直保持着好奇心与从业初心,不断地研究并将新知识应用到开发中 3.微服务将逐渐成为单体应用程序的替代方案,它通过将大型代码库分解为小的、定义良好的部分,帮助解决代码的复杂问题
内容简介
本书以一个名为O-stock的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将O-stock项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成持续部署,并最终自动部署到云环境(AWS)的Kubernetes集群中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具(如KeyCloak、Zipkin、ELK技术栈)解决这些问题。
本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。
作者简介
 
目录
第1章欢迎迈入云世界,Spring1
1.1微服务架构的演进1
1.1.1n层架构2
1.1.2什么是单体架构2
1.1.3什么是微服务3
1.1.4为什么要改变构建应用的方式5
1.2使用Spring开发微服务6
1.3我们在构建什么7
1.4本书涵盖什么内容8
1.4.1在本书中你会学到什么8
1.4.2为什么本书与你有关9
1.5云和基于微服务的应用程序9
1.5.1使用SpringBoot来构建微服务10
1.5.2云计算到底是什么14
1.5.3为什么是云和微服务16
1.6微服务不只是编写代码17
1.7核心开发模式18
1.8路由模式19
1.9客户端弹性模式21
1.10安全模式22
1.11日志记录和跟踪模式23
1.12应用程序度量模式24
1.13构建/部署模式25
1.14小结26
第2章使用SpringCloud探索微服务世界27
2.1什么是SpringCloud27
2.1.1SpringCloudConfig28
2.1.2SpringCloud服务发现29
2.1.3SpringCloudLoadBalancer和Resilience4j29
2.1.4SpringCloudAPIGateway29
2.1.5SpringCloudStream29
2.1.6SpringCloudSleuth30
2.1.7SpringCloudSecurity30
2.2通过示例来介绍SpringCloud30
2.3如何构建云原生微服务32
2.3.1代码库34
2.3.2依赖35
2.3.3配置35
2.3.4后端服务36
2.3.5构建、发布和运行37
2.3.6进程37
2.3.7端口绑定38
2.3.8并发38
2.3.9可任意处置38
2.3.10开发环境/生产环境等同38
2.3.11日志39
2.3.12管理进程39
2.4确保本书的示例是有意义的40
2.5使用SpringBoot和Java来构建微服务40
2.5.1设置环境41
2.5.2从骨架项目开始41
2.5.3引导SpringBoot应用程序:编写引导类45
2.6小结46
第3章使用SpringBoot构建微服务48
3.1架构师的故事:设计微服务架构49
3.1.1分解业务问题49
3.1.2建立服务粒度51
3.1.3定义服务接口53
3.2何时不要使用微服务53
3.2.1构建分布式系统时的复杂性54
3.2.2服务器或容器散乱54
3.2.3应用程序的类型54
3.2.4数据事务和一致性54
3.3开发人员的故事:用SpringBoot和Java构建微服务55
3.3.1构建微服务的入口:SpringBoot控制器55
3.3.2将国际化添加到许可证服务64
3.3.3实现SpringHATEOAS来显示相关的链接68
3.4DevOps故事:构建运行时的严谨性71
3.4.1服务装配:打包和部署微服务72
3.4.2服务引导:管理微服务的配置73
3.4.3服务注册和发现:客户端如何与微服务通信74
3.4.4传达微服务的健康状况75
3.5将视角综合起来77
3.6小结77
第4章欢迎来到Docker79
4.1容器还是虚拟机80
4.2Docker是什么81
4.3Dockerfile83
4.4DockerCompose84
4.5集成Docker与微服务86
4.5.1构建Docker镜像86
4.5.2使用SpringBoot创建Docker镜像91
4.5.3使用DockerCompose启动服务93
4.6小结94
第5章使用SpringCloudConfig服务器端控制配置96
5.1关于管理配置(和复杂性)97
5.1.1配置管理架构97
5.1.2实施选择99
5.2构建SpringCloudConfig服务器端100
5.2.1创建SpringCloudConfig引导类104
5.2.2使用带有文件系统的SpringCloudConfig服务器端105
5.2.3创建服务的配置文件106
5.3将SpringCloudConfig与SpringBoot客户端集成110
5.3.1建立许可证服务的SpringCloudConfig服务依赖项111
5.3.2配置许可证服务以使用SpringCloudConfig112
5.3.3使用SpringCloudConfig服务器端连接数据源115
5.3.4使用@ConfigurationProperties直接读取属性118
5.3.5使用SpringCloudConfig服务器端刷新属性119
5.3.6使用SpringCloudConfig服务器端和Git120
5.3.7使用SpringCloudConfig服务集成Vault122
5.3.8VaultUI122
5.4保护敏感配置信息125
5.4.1创建对称加密密钥125
5.4.2加密和解密属性126
5.5最后的想法128
5.6小结128
第6章关于服务发现129
6.1我的服务在哪里130
6.2云中的服务发现132
6.2.1服务发现架构132
6.2.2使用Spring和NetflixEureka进行服务发现实战135
6.3构建SpringEureka服务136
6.4通过SpringEureka注册服务141
6.4.1Eureka的RESTAPI144
6.4.2Eureka仪表板145
6.5使用服务发现来查找服务146
6.5.1使用SpringDiscoveryClient查找服务实例148
6.5.2使用带有LoadBalancer功能的SpringRest模板调用服务150
6.5.3使用NetflixFeign客户端调用服务152
6.6小结153
第7章当糟糕的事情发生时:使用SpringCloud和Resilience4j的弹性模式154
7.1什么是客户端弹性模式155
7.1.1客户端负载均衡模式156
7.1.2断路器模式156
7.1.3后备模式156
7.1.4舱壁模式156
7.2为什么客户端弹性很重要157
7.3实现Resilience4j160
7.4设置许可证服务以使用SpringCloud和Resilience4j160
7.5实现断路器162
7.5.1向组织服务添加断路器166
7.5.2定制断路器166
7.6后备处理168
7.7实现舱壁模式169
7.8实现重试模式172
7.9实现限流器模式174
7.10ThreadLocal和Resilience4j176
7.11小结180
第8章使用SpringCloudGateway进行服务路由182
8.1什么是服务网关183
8.2SpringCloudGateway简介184
8.2.1建立SpringCloudGateway项目185
8.2.2配置SpringCloudGateway与Eureka进行通信188
8.3在SpringCloudGateway中配置路由189
8.3.1通过服务发现自动映射路由189
8.3.2使用服务发现手动映射路由191
8.3.3动态重新加载路由配置194
8.4SpringCloudGateway的真正威力:断言和过滤器工厂194
8.4.1内置的断言工厂195
8.4.2内置的过滤器工厂196
8.4.3自定义过滤器197
8.5构建前置过滤器200
8.6在服务中使用关联ID203
8.6.1UserContextFilter:拦截传入的HTTP请求205
8.6.2UserContext:使服务易于访问HTTP首部206
8.6.3自定义RestTemplate和UserContextInteceptor:确保关联ID被传播207
8.7构建接收关联ID的后置过滤器208
8.8小结210
第9章保护微服务211
9.1OAuth2是什么212
9.2Keycloak简介213
9.3从小事做起:使用Spring和Keycloak来保护单个端点214
9.3.1将Keycloak服务添加到Docker214
9.3.2设置Keycloak215
9.3.3注册客户端应用程序218
9.3.4配置O-stock用户222
9.3.5对O-stock用户进行身份认证224
9.4使用Keycloak保护组织服务227
9.4.1将SpringSecurity和KeycloakJAR添加到各个服务228
9.4.2配置服务以指向Keycloak服务228
9.4.3定义什么和谁可以访问服务229
9.4.4传播访问令牌233
9.4.5从JWT中解析自定义字段239
9.5关于微服务安全的一些总结240
9.5.1对所有业务通信使用HTTPS/安全套接字层(SSL)241
9.5.2使用服务网关访问微服务241
9.5.3将服务划分到公共API和私有API241
9.5.4通过封锁不需要的网络端口来微服务的攻击面241
9.6小结242
第10章使用SpringCloudStream的事件驱动架构243
10.1消息传递、EDA和微服务的案例244
10.1.1使用同步请求-响应方式来传达状态变化244
10.1.2使用消息传递在服务之间传达状态更改246
10.1.3消息传递架构的缺点248
10.2SpringCloudStream简介249
10.3编写简单的消息生产者和消费者251
10.3.1在Docker中配置ApacheKafka和Redis252
10.3.2在组织服务中编写消息生产者252
10.3.3在许可证服务中编写消息消费者258
10.3.4在实际操作中查看消息服务261
10.4SpringCloudStream用例:分布式缓存262
10.4.1使用Redis来缓存查找263
10.4.2定义自定义通道269
10.5小结271
第11章使用SpringCloudSleuth和Zipkin进行分布式跟踪272
11.1SpringCloudSleuth与关联ID273
11.1.1将SpringCloudSleuth添加到许可证服务和组织服务中274
11.1.2剖析SpringCloudSleuth跟踪274
11.2日志聚合与SpringCloudSleuth275
11.2.1SpringCloudSleuth/ELK技术栈实现实战277
11.2.2在服务中配置Logback278
11.2.3在Docker中定义和运行ELK技术栈应用程序281
11.2.4配置Kibana284
11.2.5在Kibana中搜索SpringCloudSleuth的跟踪ID287
11.2.6使用SpringCloudGateway将关联ID添加到HTTP响应288
11.3使用Zipkin进行分布式跟踪290
11.3.1设置SpringCloudSleuth和Zipkin依赖项291
11.3.2配置服务以指向Zipkin291
11.3.3配置Zipkin服务器端292
11.3.4设置跟踪级别293
11.3.5使用Zipkin跟踪事务293
11.3.6可视化更复杂的事务296
11.3.7捕获消息传递踪迹297
11.3.8添加自定义跨度299
11.4小结301
第12章部署微服务303
12.1构建/部署管道的架构304
12.2在云中设置O-stock的核心基础设施307
12.2.1使用亚马逊的RDS创建PostgreSQL数据库309
12.2.2在AWS中创建Redis集群312
12.3超越基础设施:部署O-stock和ELK313
12.3.1创建运行EKL的EC2实例313
12.3.2在EC2实例中部署ELK技术栈316
12.3.3创建一个EKS集群317
12.4构建/部署管道实战323
12.5创建构建/部署管道324
12.5.1设置GitHub325
12.5.2使服务能够在Jenkins中构建326
12.5.3理解并生成管道脚本330
12.5.4创建Kubernetes管道脚本332
12.6关于构建/部署管道的总结333
12.7小结334
附录A微服务架构很好实践335
A.1Richardson成熟度模型335
A.2SpringHATEOAS337
A.3外部化配置337
A.4持续集成和持续交付338
A.5监控339
A.6日志记录339
A.7API网关340
附录BOAuth2授权类型341
B.1密码授权类型341
B.2客户端凭据授权类型343
B.3授权码授权类型344
B.4隐式授权类型345
B.5如何刷新令牌347
附录C监控微服务349
C.1引入SpringBootActuator进行监控349
C.1.1添加SpringBootActuator349
C.1.2启用Actuator端点350
C.2设置Micrometer和Prometheus351
C.2.1了解Micrometer和Prometheus351
C.2.2实现Micrometer和Prometheus352
C.3配置Grafana354
C.4小结358

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网