微服务从小白到专家(Spring Cloud和Kubernetes实战)
正版保障 假一赔十 可开发票
¥
104.28
6.6折
¥
158
全新
库存15件
作者姚秋辰,张昕,卿睿著
出版社电子工业出版社
ISBN9787121419478
出版时间2021-10
装帧平装
开本16开
定价158元
货号11259561
上书时间2024-12-19
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
姚秋辰,PayPal China研发经理,拥有十余年系统架构设计与团队管理经验,专注于互联网电商、金融和支付等领域的高可用系统设计,在微服务系统的架构设计上有丰富的实践经验。曾就职于eBay、阿里、SAP和HP,参与或主导过多个大型应用的微服务改造、稳定性优化和主链路高可用等方案设计。
张昕,StubHub国际互联网票务公司DevOps团队和云平台负责人,OpenGroup认证架构大师,前IBM和eBay高级架构师。十余年系统架构设计与咨询管理经验,曾主导多家国内外大型金融机构、电信运营商和互联网公司的系统优化、云平台转型、容灾多活、单元化设计,对微服务拆分管理、容器编排部署、系统安全性、可用性、扩展性等设计有着丰富的实战经验。
卿睿,PayPal高级架构师,十多年的架构设计经验,涉足的领域从企业应用到大型互联网产品。在分布式和大型系统设计方面都有丰富的理论知识和实践经验,主导过多个全球性项目的架构设计和落地。对DDD有深入的认知,并基于此打造了多个从0到1的产品。此外,曾带领团队完成多个大型系统微服务化改造和云架构迁移。曾先后在HP、Accenture和eBay等公司担任架构师,目前专注于电商、合规等领域。
目录
目 录
第1章 热身运动 1
1.1 准备工作 1
1.1.1 安装JDK 2
1.1.2 安装IDE 4
1.1.3 安装Maven 5
1.1.4 安装Postman 6
1.2 Java Web开发的进化史 6
1.2.1 应用服务器 8
1.2.2 青铜Servlet 11
1.2.3 铂金Spring MVC 18
1.2.4 王者Spring Boot 22
第2章 Spring Boot介绍 26
2.1 Spring Boot的前尘往事 26
2.1.1 Spring Framework 27
2.1.2 Spring Boot 32
2.2 Spring Boot的设计理念 34
2.3 Spring Boot的核心功能 34
2.3.1 易于使用的依赖管理Starter 35
2.3.2 约定大于配置的Auto Configuration 39
2.3.3 优雅灵活的配置管理Properties 45
2.3.4 简单明了的管理工具Actuator 51
2.3.5 方便快捷的内置容器Embedded Container 57
第3章 Spring Boot实战 63
3.1 创建Spring Boot项目 63
3.1.1 利用Spring Initializr创建项目 63
3.1.2 项目结构 64
3.1.3 在项目中添加Starter 65
3.1.4 偷懒神器lombok 68
3.2 项目运行打包 70
3.2.1 Spring Boot项目编译打包 70
3.2.2 运行Spring Boot项目 72
3.3 Spring Boot管理日志 74
3.3.1 日志框架 74
3.3.2 Log4J2 75
3.3.3 Logback 77
3.3.4 Slf4j 79
3.4 数据访问 80
3.4.1 访问关系型数据库 80
3.4.2 实现优惠券模板模块DAO层 131
3.4.3 实现用户领券模块DAO层 133
3.4.4 使用key-value store实现缓存 135
3.5 消息系统 143
3.5.1 消息系统的作用 143
3.5.2 消息系统的两种模式 144
3.5.3 集成RabbitMQ 150
3.5.4 集成Kafka 157
3.6 应用安全管理 162
3.6.1 Authentication用户身份鉴定 163
3.6.2 Authorization用户鉴权 165
3.6.3 OAuth 2.0 166
3.6.4 Spring Security 168
3.7 定时任务 173
3.7.1 Quartz 174
3.7.2 Spring Batch 178
3.8 Spring Boot项目测试 186
第4章 微服务与Spring Cloud 189
4.1 什么是微服务架构 189
4.1.1 微服务架构的特点 189
4.1.2 一线大厂为什么采用微服务架构 190
4.1.3 微服务架构对系统运维的挑战 191
4.2 微服务的拆分规范 192
4.2.1 领域模型 192
4.2.2 计算密集型业务和I/O密集型业务 192
4.2.3 区分高频、低频业务场景和突发流量 192
4.2.4 规划业务主链路 193
4.3 大厂微服务架构的服务治理方案 193
4.3.1 业界主流服务治理框架一览 193
4.3.2 微服务框架的选型建议 195
4.4 了解Spring Cloud 196
4.4.1 Spring Cloud简介 196
4.4.2 Spring Cloud和Spring Boot的关系 197
4.5 了解Spring Cloud组件库 198
4.5.1 Spring Cloud的整体架构 198
4.5.2 Spring Cloud的子项目 199
4.5.3 Netflix组件库 201
4.5.4 Alibaba组件库 202
4.6 实战项目技术选型 203
4.6.1 技术架构选型 203
4.6.2 Spring Cloud组件选型与版本 204
第5章 使用Eureka实现服务治理 205
5.1 什么是服务治理 205
5.2 Spring Cloud中常用的注册中心 207
5.3 分布式系统理论 209
5.3.1 了解CAP定理 209
5.3.2 高并发应用在CAP中的偏向性 210
5.4 Eureka核心概念 211
5.4.1 服务注册 211
5.4.2 服务发现 212
5.4.3 服务续约和服务下线 212
5.4.4 服务剔除 212
5.4.5 服务自保 213
5.5 优惠券项目改造――高可用注册中心 213
5.5.1 创建项目结构 213
5.5.2 修改host文件 213
5.5.3 引入Maven依赖项 214
5.5.4 创建项目启动类 215
5.5.5 为注册中心添加配置 215
5.6 coupon-template-service微服务架构升级 218
5.6.1 添加依赖项 218
5.6.2 创建启动类 218
5.6.3 添加配置项 219
5.6.4 运行项目 220
5.7 改造coupon-calculator 221
5.8 改造coupon-user-service服务 222
5.8.1 添加依赖项和配置项 222
5.8.2 声明RestTemplate 222
5.8.3 改造findCoupon()方法――RestTemplate.exchange函数的用法 223
5.8.4 改造requestCoupon()方法――getForObject函数的用法 225
5.8.5 改造placeOrder()方法 226
5.8.6 启动项目并验证服务注册 227
5.9 Eureka中的其他配置参数 227
第6章 使用Nacos实现服务治理 229
6.1 什么是Nacos 229
6.2 Nacos的核心功能 230
6.2.1 服务注册、服务发现与健康检测 231
6.2.2 配置管理 231
6.3 Nacos下载与安装 232
6.4 Nacos实战 234
6.4.1 Nacos与Spring Cloud的集成 234
6.4.2 Nacos控制台 234
6.4.3 Nacos实现配置管理 237
6.4.4 Nacos实现服务注册与服务发现 243
第7章 使用Ribbon实现负载均衡 247
7.1 什么是负载均衡 247
7.2 了解Ribbon 248
7.3 了解Ribbon的负载均衡器 249
7.3.1 Ribbon内置的负载均衡策略 249
7.3.2 各个负载均衡器适用的业务场景 250
7.3.3 Ribbon的IRule扩展接口 250
7.4 IPing机制 251
7.4.1 了解IPing机制 251
7.4.2 Ribbon内置的IPing策略类 252
7.5 微服务项目架构升级 252
7.5.1 添加Ribbon依赖项 252
7.5.2 添加@LoadBalancer注解 253
7.5.3 修改getUrl()方法 253
7.5.4 配置Ribbon负载均衡策略 254
第8章 使用OpenFeign实现服务间调用 256
8.1 Feign 256
8.1.1 什么是Feign 256
8.1.2 Feign的工作流程 257
8.1.3 Feign对请求和响应的压缩 258
8.2 微服务架构升级――使用Feign代理接口调用 258
8.2.1 添加依赖项 258
8.2.2 开启Feign注解支持 258
8.2.3 定义Feign接口 259
8.2.4 替换RestTemplate 261
8.2.5 Feign与Ribbon的超时与重试配置 263
8.2.6 Feign的日志配置 265
8.2.7 配置请求和响应的压缩参数 266
第9章 使用Hystrix实现服务间容错 267
9.1 Hystrix 267
9.1.1 什么是Hystrix 267
9.1.2 服务雪崩 268
9.1.3 服务雪崩的解决方案 269
9.2 Hystrix的核心概念 269
9.2.1 服务降级 269
9.2.2 服务熔断 270
9.2.3 Hystrix如何切换断路器的开关 271
9.3 微服务架构升级――配置熔断和降级 271
9.3.1 添加依赖项和配置项 271
9.3.2 在Feign接口上指定降级类 272
9.3.3 为特定方法指定降级逻辑 274
9.3.4 设置全局熔断参数 274
9.3.5 为指定方法设置超时时间 276
9.3.6 隔离机制的配置项 277
9.3.7 使用@CacheResult缓存注解 279
9.3.8 开放Actuator端点 279
9.4 微服务架构升级――利用Turbine收集Hystrix信息 281
9.4.1 什么是Turbine 281
9.4.2 添加Turbine子项目 281
9.4.3 创建启动类 282
9.4.4 指定需要监控的服务名称 283
9.5 微服务架构升级――利用Hystrix Dashboard观察服务健康度 284
9.5.1 什么是Hystrix Dashboard 284
9.5.2 添加Hystrix Dashboard项目 284
9.5.3 创建配置项和启动类 286
9.6 启用Hystrix Dashboard观察服务状态 286
第10章 使用Sentinel实现限流控制 290
10.1 服务容错 290
10.2 Sentinel简介 291
10.2.1 什么是Sentinel 291
10.2.2 Sentinel的核心功能 292
10.3 Sentinel控制台 296
10.4 Sentinel与Spring Cloud的集成 297
10.5 使用Sentinel实现降级控制 298
10.6 使用Sentinel实现限流控制 302
10.7 Sentinel的日志 307
第11章 使用Spring Cloud Config和Bus搭建配置中心 310
11.1 配置中心在微服务中的应用 310
11.1.1 环境隔离 311
11.1.2 业务配置项动态推送 311
11.1.3 中心化的配置管理 312
11.2 了解Spring Cloud Config和Bus 313
11.2.1 Spring Cloud Config+Bus架构图 313
11.2.2 保存配置的几种方式 315
11.3 准备工作――创建GitHub文件 315
11.3.1 创建GitHub Repo 315
11.3.2 添加YML配置文件 316
11.4 微服务架构升级――搭建高可用的配置中心 316
11.4.1 创建高可用的config-server项目 316
11.4.2 添加依赖项和启动类 317
11.4.3 添加配置――设置GitHub地址,借助Eureka实现高可用 319
11.4.4 从多个GitHub Repo中读取配置 321
11.5 GitHub配置文件命名规则 322
11.5.1 Application、Profile和Branch 322
11.5.2 路径匹配规则 322
11.6 对GitHub中的配置项进行加解密 324
11.6.1 更新JDK中的JCE组件 324
11.6.2 使用对称密钥对配置项加解密 324
11.6.3 使用非对称密钥对配置项加解密 327
11.7 微服务架构升级――从配置中心读取配置项 328
11.7.1 添加Spring Cloud Config和Bus的依赖项 328
11.7.2 为配置中心添加service-id 328
11.7.3 对数据库访问密码进行加密存储 330
11.7.4 配置@RefreshScope注解 330
11.7.5 从客户端触发配置刷新 332
11.7.6 使用Bus批量刷新配置项 333
第12章 使用Spring Cloud Gateway搭建服务网关 334
12.1 了解微服务网关 334
12.1.1 服务网关的用途 335
12.1.2 Spring Cloud中的网关组件 336
12.2 Spring Cloud Gateway的核心概念――路由、谓词和过滤器 337
12.3 路由功能 339
12.3.1 通过配置文件设置简单路由 339
12.3.2 通过Java代码配置路由 340
12.3.3 谓词工厂 340
12.3.4 Gateway常用谓词 341
12.3.5 过滤器 342
12.4 微服务架构改造――搭建网关模块 343
12.4.1 添加Gateway的依赖项和启动类 343
12.4.2 将Gateway连接到注册中心 344
12.4.3 在Java文件中设置路由规则 345
12.4.4 添加网关层跨域过滤器 347
12.5 微服务架构升级――使用Redis+Lua做流控 348
12.5.1 Redis和Lua的限流算法 348
12.5.2 设置限流规则 350
12.5.3 通过Actuator端点查看路由 351
第13章 使用Sleuth进行调用链路追踪 354
13.1 为什么微服务架构需要链路追踪 354
13.2 链路追踪技术介绍 356
13.2.1 Sleuth 356
13.2.2 Zipkin 357
13.2.3 ELK 358
13.3 Sleuth基本数据结构 359
13.4 微服务架构升级――集成Sleuth实现链路追踪 361
13.4.1 添加依赖项 361
13.4.2 配置Sleuth采样率 361
13.5 微服务架构升级――搭建Zipkin服务器 362
13.5.1 添加Zipkin依赖 362
13.5.2 创建Zipkin启动类 363
13.5.3 通过RabbitMQ接收日志文件 363
13.5.4 应用程序集成Zipkin 365
13.6 微服务架构升级――搭建ELK环境 368
13.6.1 下载ELK的Docker镜像 368
13.6.2 在镜像内配置ELK属性 368
13.6.3 将应用日志输送到Logstash 370
13.6.4 在Kibana中搜索日志 372
第14章 使用Stream集成消息队列 375
14.1 了解Stream 375
14.2 消息队列在微服务架构中的应用 376
14.3 消息队列的概念 380
14.3.1 发布订阅 380
14.3.2 消费组 381
14.3.3 消息分区 381
14.4 微服务架构升级――异步分发优惠券 382
14.4.1 添加Stream依赖项和消息信道 382
14.4.2 创建消息生产者 383
14.4.3 创建消息消费者并添加启动注解 384
14.4.4 添加Stream配置 385
14.5 微服务架构升级――Stream异常处理 387
14.5.1 本机重试 387
14.5.2 消息重新入队 387
14.5.3 自定义异常处理――添加降级逻辑 388
14.5.4 死信队列 388
14.6 Stream实现延迟消息 391
14.6.1 延迟消息的使用场景 391
14.6.2 安装延迟消息插件 393
14.6.3 实现延迟消息 394
第15章 使用Seata实现分布式事务 396
15.1 为什么需要分布式事务 396
15.2 分布式事务的替代方案 397
15.3 传统的XA分布式事务解决方案 398
15.4 Seata框架介绍 400
15.5 Seata的AT模式 402
15.5.1 AT模式原理 402
15.5.2 AT模式下的写隔离 404
15.5.3 AT模式下的读隔离 405
15.5.4 TCC模式 407
15.5.5 Saga模式 409
15.5.6 XA模式 410
15.6 微服务架构升级――搭建Seata服务器 410
15.6.1 下载Seata服务器 410
15.6.2 修改file.conf文件 411
15.6.3 修改registry.conf文件 412
15.6.4 添加服务器JDBC驱动 413
15.6.5 创建数据库表 413
15.7 微服务架构升级――应用改造 416
15.7.1 添加Seata依赖项和配置项 416
15.7.2 实现业务逻辑 417
15.7.3 添加数据源代理 419
第16章 走进容器化的世界 420
16.1 微服务落地的难点 420
16.1.1 微服务的兴起与容器的顺势而为 420
16.1.2 业务的高内聚和低耦合 421
16.1.3 摆脱软硬件异构的困境 423
16.1.4 遵循云原生12因素 425
16.1.5 满足康威定律 429
16.1.6 一线大厂为什么采用容器技术 430
16.2 容器技术的演进 432
16.2.1 容器技术的前世今生 432
16.2.2 主流容器技术介绍 433
16.2.3 容器技术生态圈对比 434
16.2.4 未来展望 436
16.3 容器编排技术先睹为快 436
16.3.1 资源统一管理和容器编排协作 436
16.3.2 Swarm 437
16.3.3 Mesos 437
16.3.4 Kubernetes 438
16.3.5 Rancher 439
16.3.6 各大容器编排框架对比 440
第17章 Docker容器技术 442
17.1 从HelloWorld起步 442
17.1.1 容器实战基本思路 442
17.1.2 5分钟Docker安装 443
17.1.3 1分钟HelloWorld 443
17.1.4 Docker感受分享 444
17.2 Docker架构 445
17.2.1 整体架构 445
17.2.2 客户端 446
17.2.3 Docker宿主机 449
17.2.4 仓库 450
17.2.5 镜像 451
17.2.6 容器 451
17.2.7 各个组件用途归纳 451
17.3 Docker镜像 452
17.3.1 镜像结构 452
17.3.2 镜像制作 453
17.3.3 Dockerfile常用指令 455
17.3.4 Dockerfile排疑解惑 458
17.3.5 镜像管理思路 461
17.4 Docker容器 464
17.4.1 容器的运行原
— 没有更多了 —
以下为对购买帮助不大的评价