×
微服务项目实战派——从SpringBoot到SpringCloud

微服务项目实战派——从SpringBoot到SpringCloud

1星价 ¥90.4 (6.5折)
2星价¥90.4 定价¥139.0
暂无评论
图文详情
  • ISBN:9787121422676
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:552
  • 出版时间:2021-11-01
  • 条形码:9787121422676 ; 978-7-121-42267-6

本书特色

适读人群 :希望快速提升项目经验的Java初学者、正在转型微服务架构的传统项目研发人员、希望提升Spring Cloud微服务全栈技术经验的高级开发人员、对特定系统设计感兴趣的产品经理及研发人员(1)以项目实例的形式来讲解。 (2)精选业界普遍采用的技术方案。 (3)覆盖微服务体系的绝大部分内容。 (4)循序渐进,实战性强。

内容简介

随着微服务概念的兴起,如何快速实施微服务成了一个重要话题。在Java服务端领域,Spring Cloud微服务体系事实上已经成为整个Java后端架构的标配。如果你打算从事Java服务端开发,或者你所在公司正打算转型微服务,那么Spring Cloud是无论如何都绕不开的存在。本书以项目实战的形式来介绍Spring Cloud微服务体系。书中所有实例都来自作者多年工作实践,内容覆盖构建Spring Cloud微服务所需的绝大部分内容――包括微服务工程搭建、微服务网关、熔断限流、分布式任务调度、自动化CI/CD构建、Kubernetes容器化部署、微服务监控系统、分布式链路追踪等。

目录

章 基础 ――从Spring Boot单体应用到Spring Cloud微服务 1 1.1 微服务的概念 2 1.1.1 什么是微服务 2 1.1.2 从单体应用到微服务 2 1.1.3 主流的微服务技术栈 4 1.2 Spring Boot框架基础 5 1.2.1 Spring Boot简介 5 1.2.2 Spring Boot的核心原理 6 1.2.3 Spring Boot的核心注解 12 1.3 开发一个Spring Boot应用 19 1.3.1 【步骤1】创建Spring Boot基础工程 19 1.3.2 【步骤2】创建项目配置文件 22 1.3.3 【步骤3】集成MyBatis框架 22 1.3.4 【步骤4】编写服务接口完成数据库操作 24 1.4 Spring Cloud微服务体系 27 1.4.1 Spring Cloud简介 27 1.4.2 Spring Boot与Spring Cloud的关系 28 1.4.3 Spring Cloud微服务的核心组件 28 1.4.4 Spring Cloud的核心注解 30 1.4.5 Spring Cloud的技术生态圈 34 1.5 本章小结 35 第2章 【实例】用户系统 ――用Spring Boot开发应用,用Spring Cloud将其改为微服务架构 36 2.1 功能概述 37 2.2 系统设计 37 2.2.1 业务逻辑设计 37 2.2.2 数据库设计 40 2.3 【步骤1】搭建Spring Boot应用的工程代码 41 2.3.1 创建Spring Boot应用工程 41 2.3.2 创建应用的配置文件 43 2.3.3 集成数据库访问框架MyBatis 44 2.3.4 集成缓存数据库Redis 47 2.4 【步骤2】用Spring Boot实现业务逻辑 49 2.4.1 定义用户微服务服务接口层(Controller层) 49 2.4.2 开发用户微服务业务层(Service层)代码 52 2.4.3 开发MyBatis持久层(Dao层)组件 55 2.5 【步骤3】将Spring Boot应用升级为Spring Cloud微服务 59 2.5.1 部署服务注册中心Consul 59 2.5.2 对Spring Boot应用进行微服务改造 60 2.5.3 将Spring Cloud微服务注入服务注册中心Consul 63 2.6 本章小结 65 第3章 【实例】SSO授权认证系统 ――用“Spring Security + Spring Cloud Gateway”构建OAuth 2.0授权认证服务 66 3.1 功能概述 67 3.2 系统设计 67 3.2.1 OAuth 2.0授权认证流程 67 3.2.2 系统结构设计 70 3.2.3 数据库设计 71 3.3 【步骤1】构建Spring Cloud授权认证微服务 75 3.3.1 创建Spring Cloud微服务工程 75 3.3.2 将Spring Cloud微服务注入服务注册中心Consul 77 3.3.3 集成JDBC数据源,以访问MySQL数据库 77 3.3.4 构建OAuth 2.0授权认证微服务 79 3.3.5 开发调用资源微服务的FeignClient代码 88 3.3.6 开发授权认证的自定义登录界面 93 3.4 【步骤2】构建Spring Cloud资源微服务 96 3.4.1 创建Spring Cloud微服务工程 96 3.4.2 将Spring Cloud微服务注入Consul 98 3.4.3 集成MyBatis框架,以访问MySQL数据库 98 3.4.4 构建OAuth 2.0资源微服务 99 3.4.5 实现“用户受保护信息查询”的业务逻辑 102 3.5 【步骤3】搭建基于Spring Cloud Gateway的服务网关 115 3.5.1 认识微服务网关 115 3.5.2 了解常见的服务网关组件 116 3.5.3 服务网关的具体构建 117 3.5.4 添加安全认证机制 118 3.6 【步骤4】演示OAuth 2.0授权认证流程 120 3.6.1 编写注册Client端系统的SQL语句 120 3.6.2 演示用户授权认证登录的过程 121 3.6.3 通过微服务网关访问OAuth资源微服务 124 3.7 本章小结 124 第4章 【实例】车辆电子围栏系统 ――用“PostgreSQL + PostGis”实现电子围栏服务,并利用配置中心管理微服务 的多环境配置信息 125 4.1 功能概述 126 4.2 系统设计 126 4.2.1 系统结构设计 126 4.2.2 数据库设计 127 4.3 【步骤1】构建Spring Cloud微服务工程代码 130 4.3.1 搭建“PostgreSQL + PostGIS”数据库环境 130 4.3.2 创建Spring Cloud微服务工程 131 4.3.3 将Spring Cloud微服务注入Consul 133 4.3.4 集成MyBatis,以访问PostgreSQL数据库 134 4.3.5 通过MyBatis-Plus简化MyBatis的操作 135 4.4 【步骤2】实现微服务的业务逻辑 137 4.4.1 定义服务接口层(Controller层) 137 4.4.2 开发业务层(Service层)代码 149 4.4.3 开发MyBatis持久层(Dao层)组件 165 4.5 【步骤3】演示电子围栏微服务的简单操作 173 4.5.1 通过地图工具,定义电子围栏的GeoJson信息 173 4.5.2 演示电子围栏微服务的简单操作 174 4.6 【步骤4】使用Spring Cloud ConfigServer配置中心 179 4.6.1 构建Spring Cloud ConfigServer配置中心微服务 179 4.6.2 将微服务接入Config配置中心 181 4.6.3 利用配置中心管理微服务的多环境配置 183 4.7 本章小结 184 第5章 【实例】电子钱包系统 ――用“Feign + Ribbon + Hystrix + Vue.js + Docker”实现微服务的 “负载调用 + 熔断降级 + 部署” 185 5.1 功能概述 186 5.2 系统设计 186 5.2.1 系统流程设计 187 5.2.2 系统结构设计 188 5.2.3 数据库设计 189 5.3 【步骤1】构建Spring Cloud微服务工程代码 191 5.3.1 创建Spring Cloud微服务工程 191 5.3.2 将Spring Cloud微服务注入Consul 192 5.3.3 集成MyBatis,以访问MySQL数据库 193 5.3.4 通过MyBatis-Plus简化MyBatis的操作 193 5.4 【步骤2】实现微服务的业务逻辑 194 5.4.1 定义服务接口层(Controller层) 194 5.4.2 开发业务层(Service层)的代码 202 5.4.3 开发MyBatis持久层(Dao层)组件 220 5.5 【步骤3】集成“Feign + Ribbon + Hystrix”实现微服务的“远程通信 + 负载调用 + 熔断降级” 225 5.5.1 集成微服务通信组件“Feign + Ribbon” 226 5.5.2 开发调用“支付微服务”的FeignClient客户端代码 226 5.5.3 微服务熔断降级的概念 230 5.5.4 集成Hystrix实现微服务的熔断降级 231 5.5.5 测试Hystrix熔断降级的生效情况 234 5.6 【步骤4】基于Vue.js开发电子钱包微服务的充值界面 238 5.6.1 认识Vue.js 238 5.6.2 搭建Node.js环境 238 5.6.3 创建电子钱包微服务的Vue.js前端工程 239 5.6.4 编写电子钱包微服务的前端功能 241 5.6.5 测试“电子钱包充值”前后端交互流程 246 5.7 【步骤5】用Docker部署Spring Cloud微服务 248 5.7.1 认识Docker 249 5.7.2 利用Dockerfile文件构建微服务镜像 250 5.7.3 创建docker-compose.yml文件 252 5.7.4 通过Docker容器化部署微服务 254 5.8 本章小结 255 第6章 【实例】支付系统 ――用“Redis分布式锁 + Mockito”实现微服务场景下的“支付逻辑 + 代码测试” 256 6.1 功能概述 257 6.2 系统设计 257 6.2.1 支付流程设计 258 6.2.2 系统结构设计 260 6.2.3 数据库设计 261 6.3 【步骤1】构建Spring Cloud微服务工程代码 264 6.3.1 创建Spring Cloud微服务工程 264 6.3.2 将Spring Cloud微服务注入Consul 265 6.3.3 集成MyBatis,以访问MySQL数据库 266 6.3.4 通过MyBatis-Plus简化MyBatis的操作 266 6.4 【步骤2】实现基于Redis的分布式锁 267 6.4.1 配置Redis服务 267 6.4.2 集成Redis客户端访问组件 268 6.4.3 理解Redis分布式锁的原理 269 6.4.4 实现Redis分布式锁的客户端代码 271 6.5 【步骤3】实现微服务的业务逻辑 273 6.5.1 定义服务接口层(Controller层) 273 6.5.2 开发业务层(Service层)代码 281 6.5.3 开发MyBatis持久层(Dao层)组件 292 6.6 【步骤4】接入“支付宝”渠道 298 6.6.1 申请支付宝沙箱环境 298 6.6.2 开发接入支付宝支付的代码 300 6.6.3 测试“支付宝电脑网页支付”接口 303 6.6.4 测试支付宝“渠道支付结果通知”的逻辑 306 6.7 【步骤5】进行Spring Cloud 微服务代码单元测试 307 6.7.1 认识单元测试 307 6.7.2 开发Mockito单元测试代码 308 6.8 本章小结 312 第7章 【实例】A/B测试系统 ――用“Spring Boot Starter机制 + Caffeine缓存”实现A/B流量切分 313 7.1 功能概述 314 7.2 系统设计 314 7.2.1 系统流程设计 314 7.2.2 系统结构设计 316 7.2.3 数据库设计 317 7.3 【步骤1】构建Spring Cloud微服务工程代码 319 7.3.1 创建Spring Cloud微服务工程 320 7.3.2 将Spring Cloud微服务注入Consul 321 7.3.3 集成MyBatis,以访问MySQL数据库 322 7.3.4 通过MyBatis-Plus简化MyBatis的操作 323 7.4 【步骤2】集成高性能本地缓存Caffeine 323 7.4.1 引入Caffeine的依赖 324 7.4.2 开发Caffeine的配置类代码 324 7.4.3 演示Caffeine的使用效果 326 7.5 【步骤3】实现微服务的业务逻辑 329 7.5.1 定义服务接口层(Controller层) 329 7.5.2 开发业务层(Service层)的代码 345 7.5.3 开发MyBatis持久层(Dao层)组件 366 7.6 【步骤4】基于Spring Boot Starter方式编写“接入SDK” 374 7.6.1 创建Spring Boot Starter工程代码 374 7.6.2 开发“接入SDK”的代码 376 7.7 【步骤5】接入A/B测试微服务,实现灰度发布 385 7.7.1 创建A/B测试接入方微服务示例工程代码 385 7.7.2 通过接口调用的方式创建A/B测试 386 7.7.3 开发A/B测试代码,实现灰度流量切分 388 7.8 本章小结 394 第8章 【实例】分布式任务调度系统 ――用“ZooKeeper + ElasticJob”处理分布式任务 395 8.1 功能概述 396 8.2 【步骤1】构建分布式任务调度系统 396 8.2.1 认识分布式任务调度框架ElasticJob 396 8.2.2 搭建ZooKeeper分布式协调服务 398 8.2.3 部署ElasticJob的Console管理控制台 400 8.3 【步骤2】实现Spring Cloud微服务分布式任务处理 403 8.3.1 创建Spring Cloud微服务工程 403 8.3.2 编写ElasticJob的“接入SDK” 405 8.3.3 定义微服务分布式任务 412 8.4 本章总结 415 第9章 搭建微服务DevOps发布系统 ――用“GitLab + Harbor + Kubernetes”构建Spring Cloud微服务CI/CD自动化 发布体系 416 9.1 CI/CD概述 417 9.2 了解DevOps发布系统的设计流程 418 9.3 【基础知识1】GitLab代码仓库 419 9.3.1 部署GitLab代码仓库 419 9.3.2 配置GitLab 邮箱通知 422 9.3.3 设置GitLab的 CI/CD功能 424 9.3.4 安装Maven及Docker环境 430 9.4 【基础知识2】Docker镜像仓库 430 9.4.1 Docker镜像简介 431 9.4.2 选择Docker镜像仓库 431 9.4.3 部署Harbor私有镜像仓库 432 9.5 【基础知识3】Kubernetes容器编排技术 436 9.5.1 Kubernetes简介 437 9.5.2 搭建Kubernetes集群 438 9.5.3 Kubernetes的技术原理 453 9.6 自动化发布Spring Cloud微服务 457 9.6.1 创建Spring Cloud微服务的示例工程 457 9.6.2 配置Spring Cloud项目的Docker打包插件 459 9.6.3 准备GitLab CI/CD 服务器的Kubernetes环境 461 9.6.4 编写Kubernetes的发布部署文件 462 9.6.5 定义Spring Cloud微服务的GitLab CI/CD流程 464 9.6.6 将微服务应用自动发布到Kubernetes集群中 466 9.7 本章小结 469 0章 搭建微服务监控系统 ――用“Prometheus + Grafana + SkyWalking”实现度量指标监控及分布式链路追踪 470 10.1 认识监控系统 471 10.1.1 监控对象及分层 471 10.1.2 常见的监控指标及类型 472 10.1.3 主流的监控系统及选型 475 10.2 【实战】构建微服务度量指标监控系统 477 10.2.1 认识Prometheus 477 10.2.2 【步骤1】部署Prometheus Operator 481 10.2.3 【步骤2】演示Prometheus的Metrics(度量指标)监控效果 484 10.2.4 【步骤3】部署Grafana可视化监控系统 487 10.2.5 【步骤4】将Spring Cloud 微服务接入Prometheus 489 10.2.6 【步骤6】使用ServiceMonitor管理监控目标 510 10.2.7 【步骤7】构建基于Grafana的可视化监控界面 513 10.3 【实战】构建微服务分布式链路追踪系统 517 10.3.1 认识分布式链路追踪 518 10.3.2 认识SkyWalking 520 10.3.3 【步骤1】部署SkyWalking 521 10.3.4 【步骤2】将Spring Cloud微服务接入SkyWalking 527 10.3.5 【步骤3】通过SkyWalking UI追踪分布式链路 535 10.4 本章小结 537
展开全部

作者简介

姜 桥拥有10年的互联网系统研发、设计及架构经验。曾任职于PP钱包、宜信、玖富等互联网金融公司,后加入摩拜单车,主要负责摩拜支付、对账等核心系统的设计研发工作。在摩拜任职期间,参与了摩拜单车整体软件系统从单体架构到Spring Cloud微服务架构升级改造的全过程。目前任职于集度汽车,工作之余专注于微服务架构领域相关的技术研究及分享,并定期发布至微信公众号“无敌码农”。感兴趣的朋友可以关注公众号与作者交流。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航