《Spring Cloud与Docker高并发微服务架构设计实施》从构架设计、应用开发和运维管理布署三个层面考虑,对微服务架构设计的实施开展了多方位的论述和深层次实践活动,并融合生产制造具体解读了SpringCloud、Docker和Jenkins等专用工具的实际操作方法。书里根据一个互联网电商平台案例完成了分布式系统的微服务架构设计,并根据详尽的开发设计和实施全过程,演试了搭建一个可以信赖、平稳高效率并可持续性拓展的系统软件平台的方式 。这书合适互联网技术应用开发设计工作人员参照学习培训。
目录
- 架 构 篇
- 1 微服务架构与Spring Cloud 2
- 1.1 微服务概念的由来 2
- 1.2 微服务的定义 3
- 1.3 微服务架构与整体式架构的区别 5
- 1.4 微服务架构与SOA的比较 8
- 1.5 为什么要使用微服务架构 9
- 1.6 为实施微服务架构做好准备 10
- 1.6.1 思想观念的转变 10
- 1.6.2 团队管理方式的改变 11
- 1.6.3 自动化基础设施的建设 11
- 1.7 为什么要使用Spring Cloud 12
- 1.8 Spring Cloud组件介绍 13
- 1.9 Spring Cloud的版本说明 15
- 1.10 小结 17
- 2 微服务架构最佳设计 18
- 2.1 合理划分微服务 19
- 2.2 微服务治理 19
- 2.3 Rest API微服务设计 21
- 2.3.1 使用数据库集群 22
- 2.3.2 读写分离设计 22
- 2.3.3 使用缓存 22
- 2.3.4 保证Rest API微服务的独立性 23
- 2.4 Web UI微服务设计 23
- 2.4.1 使用FeignClient实现负载均衡调用 23
- 2.4.2 使用Hystrix实现容错设计 23
- 2.4.3 使用非阻塞的异步编程技术实现高并发调用 24
- 2.4.4 使用分布式文件系统 24
- 2.5 微服务之间调用规则设计 24
- 2.6 数据最终一致性设计 25
- 2.7 分布式集群架构设计 26
- 2.8 微服务运行环境安全设计 27
- 2.9 小结 27
- 3 电商平台微服务设计实例 29
- 3.1 电商平台总体设计 29
- 3.1.1 总体业务流程设计 29
- 3.1.2 总体业务功能设计 31
- 3.2 电商平台业务模型设计 32
- 3.2.1 移动商城业务模型 32
- 3.2.2 商家管理后台业务模型 33
- 3.2.3 平台管理后台业务模型 33
- 3.3 创建Rest API微服务 34
- 3.4 创建Web UI微服务 36
- 3.4.1 移动商城Web UI微服务 36
- 3.4.2 商家管理后台的Web UI微服务 37
- 3.4.3 平台管理后台Web UI微服务 37
- 3.5 电商平台微服务体系结构 38
- 3.6 小结 39
- 开 发 篇
- 4 开发工具选用及Spring Boot基础 41
- 4.1 开发工具选择 42
- 4.2 开发环境配置 42
- 4.3 创建Spring Boot工程 43
- 4.4 使用JPA 47
- 4.4.1 数据源配置 48
- 4.4.2 JPA配置 48
- 4.4.3 数据实体设计 49
- 4.4.4 存储库接口设计 49
- 4.4.5 单元测试 50
- 4.5 使用Thymeleaf 51
- 4.5.1 控制器设计 51
- 4.5.2 视图设计 52
- 4.6 运行与部署 52
- 4.7 小结 53
- 5 电商平台微服务工程设计 54
- 5.1 微服务工程结构 54
- 5.2 电商平台微服务工程组建 56
- 5.3 数据库选型 56
- 5.4 微服务工程创建步骤 57
- 5.5 项目基本配置 59
- 5.6 创建模块 63
- 5.7 小结 65
- 6 微服务治理基础服务开发 66
- 6.1 注册管理中心 67
- 6.1.1 创建注册管理中心 67
- 6.1.2 运行注册管理中心 69
- 6.1.3 微服务怎样使用注册管理中心 69
- 6.1.4 构建高可用的注册管理中心 71
- 6.2 配置管理中心 72
- 6.2.1 创建配置管理中心 72
- 6.2.2 微服务如何使用配置管理中心 75
- 6.2.3 在线更新配置信息 76
- 6.3 微服务监控中心 77
- 6.3.1 使用断路器仪表盘实现监控 78
- 6.3.2 聚合服务监控管理中心 80
- 6.4 服务跟踪分析中心 85
- 6.4.1 创建服务跟踪分析中心 85
- 6.4.2 在微服务中启用服务跟踪功能 89
- 6.5 日志分析平台 92
- 6.5.1 创建日志分析平台 92
- 6.5.2 使用日志分析平台 92
- 6.6 小结 93
- 7 Rest API微服务开发 95
- 7.1 领域业务开发 95
- 7.1.1 使用Druid数据源 97
- 7.1.2 JPA及其配置 99
- 7.1.3 数据实体建模 100
- 7.1.4 查询对象设计 103
- 7.1.5 实体持久化设计 105
- 7.1.6 持久化测试 106
- 7.1.7 领域服务开发 108
- 7.1.8 领域服务的单元测试 110
- 7.1.9 使用Redis实现缓存设计 111
- 7.2 Rest API应用开发 116
- 7.2.1 Rest API应用配置 116
- 7.2.2 启动程序设计 118
- 7.2.3 接口开发 118
- 7.3 使用消息处理事件 122
- 7.3.1 消息生产者设计 123
- 7.3.2 消息消费者设计 124
- 7.3.3 使用消息测试 127
- 7.4 小结 128
- 8 Web UI微服务开发 130
- 8.1 高并发接口调用分层设计 130
- 8.2 通过FeignClient调用Rest API 131
- 8.3 使用Hystrix断路器 133
- 8.4 使用非阻塞异步编程方法 135
- 8.4.1 CompletableFuture介绍 136
- 8.4.2 性能比较测试 139
- 8.5 Web应用开发 144
- 8.5.1 项目引用配置 144
- 8.5.2 应用程序配置 145
- 8.5.3 业务功能开发 147
- 8.6 开发环境的热部署设置 153
- 8.7 使用分布式文件系统 156
- 8.7.1 分布式文件系统客户端开发 156
- 8.7.2 商品图片上传设计 158
- 8.7.3 富文本编辑器上传文件设计 159
- 8.7.4 建立本地文件信息库 162
- 8.8 小结 165
- 9 电商平台移动商城开发 166
- 9.1 移动商城首页设计 167
- 9.2 使用负载均衡的导航设计 173
- 9.3 按分类查询设计 175
- 9.4 商品详情页设计 178
- 9.5 购买下单实现 180
- 9.6 用户登录与账户切换设计 183
- 9.6.1 用户登录设计 183
- 9.6.2 切换账号设计 185
- 9.7 订单查询设计 187
- 9.8 集成测试 190
- 9.9 小结 191
- 10 商家管理后台与SSO设计 192
- 10.1 商家权限管理体系设计及开发 193
- 10.1.1 商家权限体系建模 194
- 10.1.2 商家权限体系的持久化设计 198
- 10.1.3 商家权限体系的领域服务开发 200
- 10.2 商家管理微服务开发 203
- 10.2.1 商家领域服务层单元测试 203
- 10.2.2 商家服务的接口开发 207
- 10.3 SSO设计 212
- 10.3.1 SSO基本配置 212
- 10.3.2 在SSO中使用商家的权限体系 213
- 10.3.3 用户登录设计 215
- 10.3.4 有关验证码的说明 217
- 10.3.5 SSO的主页设计 219
- 10.3.6 OAuth2服务端设计 221
- 10.4 SSO客户端设计 223
- 10.4.1 客户端的项目管理配置 223
- 10.4.2 客户端的安全管理配置 224
- 10.4.3 权限验证实现原理 225
- 10.4.4 如何在应用中接入SSO 227
- 10.4.5 有关跨站请求伪造防御的相关设置 229
- 10.4.6 根据用户权限自动分配菜单 229
- 10.5 小结 231
- 11 平台管理后台开发 232
- 11.1 平台管理后台领域设计 232
- 11.1.1 领域实体建模 232
- 11.1.2 实体的行为设计 235
- 11.1.3 领域服务开发 235
- 11.1.4 领域服务单元测试 238
- 11.2 平台管理后台访问控制设计 239
- 11.2.1 使用平台管理的用户体系 239
- 11.2.2 权限管理设计 241
- 11.3 商家的注册设计 244
- 11.4 商家菜单体系管理开发 247
- 11.4.1 分类菜单管理开发 247
- 11.4.2 模块菜单管理开发 248
- 11.4.3 访问资源管理开发 251
- 11.5 商家角色管理开发 254
- 11.6 小结 256
- 运 维 篇
- 12 服务器架构设计与Docker使用 258
- 12.1 服务器组建 258
- 12.2 安全的服务器架构设计 259
- 12.2.1 防火墙安装及配置 259
- 12.2.2 建立安全的局域网环境 263
- 12.3 服务器资源分配 265
- 12.4 CentOS安装 268
- 12.4.1 IP地址设置 269
- 12.4.2 安全设置 269
- 12.4.3 语言配置 269
- 12.4.4 时间同步配置 270
- 12.5 Docker和docker-compose安装 270
- 12.5.1 Docker安装及使用 271
- 12.5.2 docker-compose安装及使用 274
- 12.6 使用Docker搭建微服务治理环境 278
- 12.6.1 服务器1的部署配置 278
- 12.6.2 服务器2的部署配置 280
- 12.7 使用Docker部署日志分析平台 282
- 12.8 使用Docker部署微服务应用 285
- 12.9 小结 285
- 13 数据库集群设计与高可用读写分离实施 287
- 13.1 MySQL安装 288
- 13.2 主从同步设置 290
- 13.3 主主同步设置 293
- 13.4 数据库代理中间件选择 295
- 13.5 使用OneProxy实现读写分离设计 296
- 13.5.1 OneProxy安装 296
- 13.5.2 高可用读写分离配置 297
- 13.6 OneProxy分库分区设计 301
- 13.6.1 按范围分库分表 302
- 13.6.2 按值分库分表 302
- 13.6.3 按哈希算法分库分表 303
- 13.7 双机热备设计 305
- 13.8 小结 306
- 14 分布式文件系统等基础设施安装与配置 307
- 14.1 高可用的分布式文件系统构建 307
- 14.1.1 FastDFS安装 309
- 14.1.2 跟踪服务器配置 309
- 14.1.3 存储节点配置 310
- 14.1.4 上传文件测试 311
- 14.1.5 Nginx安装及负载均衡配置 312
- 14.1.6 开机启动设置 316
- 14.2 GitLab安装 321
- 14.3 Redis安装 323
- 14.4 RabbitMQ安装 325
- 14.5 小结 326
- 15 使用自动化构建工具Jenkins实现CI/CD 327
- 15.1 持续交付工作流程 329
- 15.2 Jenkins安装 330
- 15.3 Jenkins基本配置 332
- 15.4 Jenkins自动部署实例 334
- 15.4.1 创建任务 335
- 15.4.2 任务配置 336
- 15.4.3 执行任务 339
- 15.5 小结 342
- 后 记 344
- 参考文献 345