微服务和Docker容器技术是目前分布式架构中常用的主流技术,结合Kubernetes强大的容器服务编排与调度能力,中小企业能够简单快速地构建自己的分布式互联网架构系统。《微服务容器化开发实战》结合实际生产项目的架构重构过程和经验,详细介绍从单体架构过渡到微服务容器化的分布式架构的各个方面,主要包括微服务开发和运维技术栈的选型、Spring Cloud微服务开发、Rancher和Kubernetes生产离线环境下的安装与部署、微服务的容器化与服务编排、日志调用链的采集和展示、基于Prometheus的系统监控,以及微服务的持续集成等要点。《微服务容器化开发实战》基于Spring Boot、Spring Cloud、Docker、Rancher、Kubernetes等技术,主要提供从设计、开发、部署到运维的微服务容器化的生产环境整体解决方案。 尹为强,资深程序员、架构师。从事软件开发设计十余年,现就职于中国联通电子商务中心,集团IT专家人才。主导电信运营商某中台系统的架构重构、微服务、容器化的设计开发和落地工作。主要技术领域是分布式系统架构设计、微服务设计与开发、容器化部署与服务编排和容器云计算等。 第1章 单体架构与微服务架构 11.1 背景介绍 21.2 单体架构 31.2.1 单体架构的特点 31.2.2 单体架构的优点 41.2.3 单体架构的缺点 41.3 微服务架构 41.3.1 微服务架构的特点 61.3.2 微服务架构的优点 61.3.3 微服务架构的缺点 61.4 微服务拆分 71.4.1 微服务设计原则 71.4.2 微服务拆分原则 81.5 微服务开发原则 91.5.1 微服务命名 91.5.2 项目依赖配置 91.5.3 配置文件 101.5.4 代码命名 101.6 本章小结 11第2章 Spring Boot微服务开发 122.1 微服务框架 132.1.1 Dubbo服务框架 132.1.2 Spring Cloud微服务框架 152.1.3 Dubbo服务框架和Spring Cloud微服务框架的对比 172.2 技术栈选型 172.3 搭建开发环境 192.3.1 安装开发软件 192.3.2 Maven配置 202.3.3 IDE配置 212.4 编写框架代码 222.4.1 创建Maven工程 222.4.2 创建微服务模块 242.4.3 微服务代码结构 262.5 编写业务代码 292.5.1 Controller文件 302.5.2 Mapper文件 312.5.3 Service文件和ServiceImpl文件 312.6 打包与测试 332.6.1 编译打包 332.6.2 运行测试 352.7 本章小结 36第3章 搭建微服务运行环境 373.1 运行环境概述 383.2 搭建开发环境 383.2.1 IDE环境 403.2.2 非IDE环境 413.3 搭建测试环境 413.3.1 非容器化环境 413.3.2 容器化环境 423.4 搭建生产环境 433.5 切换运行环境 453.6 本章小结 45第4章 Rancher和Kubernetes离线部署 464.1 下载离线文件 474.1.1 下载Docker安装文件 474.1.2 下载docker-compose文件 484.1.3 下载Harbor安装文件 484.1.4 下载Rancher离线文件 494.2 创建CA证书 514.3 Docker离线安装 524.3.1 安装Docker 524.3.2 自定义Docker目录 534.3.3 创建用户eos 544.4 Harbor离线安装 544.4.1 配置docker-compose 544.4.2 载入Harbor镜像 554.4.3 配置Harbor 564.4.4 启动Harbor 574.4.5 创建用户和项目 584.5 Docker登录设置 614.5.1 配置Harbor证书 614.5.2 登录Docker 624.6 Rancher离线安装 624.6.1 载入Rancher镜像 634.6.2 安装Rancher 654.7 Kubernetes安装 664.7.1 配置私有仓库 664.7.2 添加Control节点 674.7.3 添加Worker节点 714.7.4 配置kubectl客户端 744.8 本章小结 76第5章 日志采集 785.1 日志采集模型 795.2 配置微服务日志 805.3 容器日志采集 815.4 日志汇集 825.4.1 日志格式 835.4.2 配置Filebeat 845.4.3 配置Logstash 865.4.4 配置Elasticsearch 915.5 日志展示 955.5.1 配置Kibana 955.5.2 启动和关闭Kibana 965.5.3 Kibana索引设置 965.5.4 展示Kibana图形化 985.6 本章小结 108第6章 调用链跟踪 1096.1 调用链概述 1106.1.1 系统完整调用链 1116.1.2 调用过程追踪 1116.2 Spring Cloud调用链模型 1126.2.1 Sleuth组件 1126.2.2 Zipkin组件 1146.2.3 Spring Cloud调用链跟踪 1156.3 调用链跟踪配置 1166.3.1 微服务配置 1166.3.2 Zipkin服务端配置 1206.4 调用链跟踪展示 1246.4.1 Zipkin图形化展示 1256.4.2 Kibana图形化展示 1336.5 本章小结 136第7章 熔断器 1377.1 熔断器概述 1387.1.1 熔断器介绍 1387.1.2 Hystrix介绍 1387.2 熔断器配置 1397.3 熔断器使用 1407.3.1 EnableCircuitBreaker注解 1407.3.2 HystrixCommand注解 1417.3.3 Fallback函数 1427.4 熔断器监控 1447.5 本章小结 145第8章 容器化与服务编排 1468.1 容器化与服务编排概述 1478.1.1 Docker介绍 1478.1.2 Docker与虚拟机 1488.1.3 服务编排与调度 1498.2 构建基础镜像 1498.2.1 母镜像的选择 1508.2.2 基础镜像的特点 1518.2.3 生成基础镜像 1518.3 构建业务镜像 1548.3.1 微服务打包 1548.3.2 镜像构建的Dockerfile文件 1568.3.3 镜像集成构建 1578.4 服务编排 1618.4.1 服务创建 1618.4.2 服务版本升级
阅读更多