![]()
作者简介 李熠,全栈工程师,毕业于成都电子科技大学计算机科学与技术专业,拥有7年互联网软件开发、技术架构和管理等方面的经验,对 Spring Boot、Spring Cloud、微服务、持续集成有一定见地。曾任映潮科技系统架构师、链一科技 CTO,现就职于中国石油规划总院。 热爱技术,喜欢钻研,特别喜欢挑战技术难题,CSDN 博客(https://blog.csdn.net /lynnlovemin)专家、GitChat 专栏作者,并在 GitHub 上开源了多个项目(详见 https://github.com/lynnlovemin)。技术全面,对 Vue.js、React.js 等比较熟悉,擅长 Java、JavaScript、Linux 服务器,可独立实现一套涵盖前后端的系统。 目录 第 一部分 基础篇 第 1章 微服务概述\t2 1.1 应用架构概述\t2 1.1.1 单体架构\t2 1.1.2 微服务架构\t3 1.1.3 如何选择架构风格\t4 1.2 微服务现状及发展趋势\t4 1.2.1 微服务现状\t4 1.2.2 微服务发展趋势\t5 1.3 微服务架构面临的挑战\t5 1.4 怎样实现微服务架构\t6 1.4.1 技术选型\t6 1.4.2 整体架构思路\t7 1.5 小结\t7 第 2章 Spring Boot基础\t9 2.1 Spring Boot简介\t9 2.2 第 一个Spring Boot工程\t9 2.3 使用YAML文件配置属性\t12 2.3.1 YAML的基本用法\t12 2.3.2 多环境配置\t13 2.4 常用注解\t14 2.4.1 @SpringBootApplication\t15 2.4.2 @SpringBootConfiguration\t15 2.4.3 @Bean\t16 2.4.4 @Value\t18 2.5 Spring Boot集成模板引擎\t19 2.6 更改默认的JSON转换器\t21 2.7 打包发布到服务器上\t22 2.7.1 使用内置Tomcat发布jar包\t22 2.7.2 打包成war包发布\t24 2.8 WebFlux快速入门\t27 2.9 小结\t29 第3章 Spring Boot核心原理\t31 3.1 起步依赖机制\t31 3.2 自动配置管理\t32 3.3 Actuator监控管理\t34 3.4 Spring Boot CLI命令行工具\t36 3.4.1 安装\t36 3.4.2 用法\t37 3.5 小结\t38 第4章 Spring Cloud概述\t40 4.1 简介\t40 4.2 优缺点\t41 4.3 现状\t41 4.4 开始Spring Cloud实战\t42 4.4.1 技术储备\t42 4.4.2 准备工作\t42 4.4.3 从Hello World开始你的实战 之旅\t43 4.5 小结\t52 第二部分 实战篇 第5章 项目准备阶段\t54 5.1 项目介绍\t54 5.2 需求分析\t54 5.3 产品设计\t55 5.4 架构方案分析\t58 5.4.1 技术选型\t58 5.4.2 架构图设计\t58 5.4.3 根据架构图创建工程\t59 5.5 数据库结构设计\t62 5.6 小结\t63 第6章 公共模块封装\t65 6.1 common工程常用类库的封装\t65 6.1.1 日期时间的处理\t65 6.1.2 字符串的处理\t68 6.1.3 加密/解密封装\t69 6.1.4 消息队列的封装\t74 6.2 接口版本管理\t78 6.3 输入参数的合法性校验\t80 6.4 异常的统一处理\t82 6.5 更换JSON转换器\t83 6.6 Redis的封装\t84 6.7 小结\t85 第7章 注册中心:Spring Cloud Netflix Eureka\t87 7.1 Eureka简介\t87 7.2 创建注册中心\t87 7.3 创建客户端工程以验证注册中心\t91 7.4 实现注册中心的高可用\t92 7.5 添加用户认证\t96 7.6 开启自我保护模式\t99 7.7 注册中心的健康检查\t100 7.8 多网卡环境下的IP选择问题\t101 7.9 小结\t103 第8章 配置中心:Spring Cloud Config\t105 8.1 Spring Cloud Config简介\t105 8.2 创建配置中心\t105 8.3 对配置内容进行加密\t111 8.3.1 安装JCE\t111 8.3.2 对称加密\t112 8.3.3 对配置内容加密\t114 8.3.4 非对称加密\t114 8.4 配置自动刷新\t118 8.4.1 使用refresh端点刷新配置\t118 8.4.2 Spring Cloud Bus自动刷新配置\t119 8.5 添加用户认证\t122 8.6 小结\t123 第9章 服务网关:Spring Cloud Gateway\t125 9.1 Gateway简介\t125 9.2 创建服务网关\t125 9.3 利用过滤器拦截API请求\t128 9.4 请求失败处理\t130 9.5 小结\t133 第 10章 功能开发\t135 10.1 开发前的准备\t135 10.1.1 MyBatis的集成\t135 10.1.2 Elasticsearch的集成\t137 10.2 利用代码生成器提升开发效率\t140 10.3 使用代码生成器生成的代码操作 数据库\t147 10.4 MyBatis应对复杂SQL\t149 10.4.1 注解\t149 10.4.2 Provider\t150 10.5 功能开发\t151 10.6 网关鉴权\t154 10.6.1 防止参数被篡改\t155 10.6.2 拦截非法请求\t157 10.7 单元测试\t159 10.8 小结\t160 第三部分 不错篇 第 11章 服务间通信:Spring Cloud Netflix Ribbon和Spring Cloud OpenFeign\t162 11.1 Spring Cloud Netflix Ribbon的使用\t162 11.2 Spring Cloud OpenFeign\t164 11.3 自定义OpenFeign配置\t166 11.4 Spring Cloud OpenFeign熔断\t167 11.4.1 Spring Cloud Netflix Hystrix 简介\t167 11.4.2 Spring Cloud Netflix Hystrix 的使用\t168 11.4.3 OpenFeign集成Hystrix 熔断器\t172 11.5 小结\t173 第 12章 服务链路追踪:Spring Cloud Sleuth\t175 12.1 Spring Cloud Sleuth简介\t175 12.2 利用链路追踪监听网络请求\t176 12.2.1 服务端的实现\t176 12.2.2 客户端集成Spring Cloud Sleuth\t179 12.3 通过消息中间件实现链路追踪\t180 12.4 存储追踪数据\t182 12.5 小结\t184 第 13章 服务治理:Spring Cloud Consul和Spring Cloud ZooKeeper\t186 13.1 服务治理简介\t186 13.2 Spring Cloud Consul的使用\t186 13.2.1 Consul的安装与部署\t187 13.2.2 Spring Cloud集成Consul\t189 13.3 Spring Cloud ZooKeeper的使用\t190 13.3.1 ZooKeeper的安装和部署\t191 13.3.2 Spring Cloud集成ZooKeeper\t191 13.4 小结\t193 第四部分 部署篇 第 14章 系统发布上线\t195 14.1 发布前准备\t195 14.1.1 虚拟机的安装\t195 14.1.2 Linux常用命令\t198 14.1.3 安装常用软件\t198 14.2 编译、打包、发布\t207 14.3 利用Jenkins实现持续集成\t210 14.3.1 安装并配置Jenkins\t210 14.3.2 创建任务\t215 14.3.3 构建项目\t220 14.4 小结\t221 第 15章 使用Kubernetes部署分布式 集群\t223 15.1 Docker介绍\t223 15.1.1 Docker安装\t223 15.1.2 Docker镜像\t224 15.1.3 Docker容器\t228 15.2 K8S集群环境搭建\t229 15.2.1 环境准备\t229 15.2.2 集群搭建\t230 15.2.3 分布式应用部署\t232 15.3 小结\t237 附录A 如何编写优雅的Java代码\t239 附录B IDEA插件之Alibaba Cloud Toolkit\t258 内容推荐 本书是Spring Cloud的入门书。首先,简要概述了微服务并分析了当前互联网架构趋势。其次,系统地介绍了Spring Boot的相关知识,从基础用法到核心组件。再次,从具体的案例出发,依次讲解了Spring Cloud很常用的组件,将理论与实践相结合,使读者在学习Spring Cloud的过程中还能了解一个产品从无到有的全过程。很后,结合目前很流行的容器技术,介绍了Kubernetes如何配合Docker进行系统的分布式部署。 本书适合具有一定Java基础和Spring MVC基础的人群以及希望往架构师方向发展的开发者阅读。 |