微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud/张方兴张方兴pdf下载

微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud/张方兴张方兴百度网盘pdf下载

作者:
简介:微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud/张方兴张方兴
出版社:
出版时间:2020-03
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

作  者:张方兴 著
定  价:59
出 版 社:电子工业出版社
出版日期:2020年03月01日
页  数:272
装  帧:平装
ISBN:9787121384134
章 微服务分布式架构设计原理11.1 Java Web应用程序的发展历史11.2 微服务分布式21.2.1 Spring Boot微服务的定义和特点31.2.2 Spring Boot的职场导读31.2.3 Spring部分内容41.2.4 微服务的拆分61.3 【实例】微服务工程Hello World71.3.1 实例背景71.3.2 创建Maven Project71.3.3 使用空Maven Project模板71.3.4 编辑Maven坐标定位及工程名81.3.5 检查Maven目录结构91.3.6 编写Pom文件101.3.7 Spring Boot依赖包的导入121.3.8 编写Spring Boot启动类141.3.9 编写Spring Boot接口141.3.10 当前项目结构141.3.11 启动工程151.3.12 Spring Boot初始化启动后161.3.13 实例易错点161.4 Spring Boot启动类扫描Bean181.4.1 @SpringBootApplication注解181.4.2 @ComponentScan注解201.4.3 Spring Boot扫描其他包下文件201.5 【实例】将端口号改成9090211.5.1 实例背景211.5.2 创建application.properties资源配置 文件221.5.3 增加资源配置文件中的配置信息231.5.4 运行结果231.5.5 实例易错点231.6 YAML文件241.6.1 YAML文件简介251.6.2 YAML文件的书写格式251.7 【实例】使用YAML配置文件251.7.1 实例背景251.7.2 原properties文件251.7.3 转换格式后的YAML文件261.7.4 实例易错点261.8 【实例】通过单配置文件让工程 适应多应用场景271.8.1 实例背景271.8.2 更改application.yml文件271.8.3 更改启动类271.8.4 输入启动参数291.8.5 运行结果301.8.6 实例易错点301.9 【实例】通过多配置文件使工程 适应多应用场景311.9.1 实例背景311.9.2 新建SIT和UAT环境所需资源 配置文件311.9.3 新建系统资源配置文件311.9.4 编写启动类311.9.5 当前项目结构321.9.6 运行结果321.10 微服务配置权重321.10.1 资源配置信息类型的权重321.10.2 资源配置文件类型的权重331.10.3 资源配置文件存在位置与权重 解读331.11 本章小结341.12 习题34第2章 分布式的注册中心352.1 注册中心352.1.1 Eureka与Consul的区别352.1.2 Consul的相关术语372.1.3 Consul的安装372.2 Consul的常用命令372.2.1 consul agent -dev382.2.2 consul -members392.2.3 consul leave402.2.4 agent命令的常用配置参数402.2.5 HTTP API412.3 【实例】创建个微服务分布式 项目422.3.1 实例背景422.3.2 搭建Consul集群422.3.3 创建微服务工程编写相应依赖 文件452.3.4 Spring Cloud和Spring Boot的 版本对应关系462.3.5 编写微服务YAML资源配置文件462.3.6 编写微服务启动类注册到 Consul上482.3.7 当前项目结构482.3.8 运行结果492.3.9 实例易错点502.4 【实例】通过代码获取Consul中的 服务信息512.4.1 实例背景512.4 2 编写获得其他注册服务的代码522.4 3 运行结果532.4.4 实例易错点532.5 【实例】Spring Cloud操作Consul 的K/V存储542.5.1 实例背景542.5.2 添加依赖542.5.3 利用Consul的UI界面添加K/V 存储542.5.4 编写YAML资源配置文件对应 K/V存储552.5.5 编写MyConfig.java文件对应 相关K/V存储562.5.6 调用MyConfig.java中的参数572.5.7 在启动类引用相关配置572.5.8 当前项目结构582.5.9 运行结果582.5.10 实例易错点602.6 本章小结602.7 习题60第3章 分布式的通信613.1 分布式通信613.1.1 Spring Cloud Feign613.1.2 Swagger613.2 【实例】微服务集成Swagger623.2.1 实例背景623.2.2 编写Swagger依赖623.2.3 编写Swagger配置633.2.4 编写接口与接口处的Swagger 配置3.2.5 当前项目结构663.2.6 运行效果663.2.7 实例易错点703.3 【实例】Feign调用微服务接口723.3.1 实例背景723.3.2 引入相关配置信息733.3.3 编写Feign客户端733.3.4 编写调用753.3.5 编写启动类763.3.6 当前项目结构763.3.7 运行结果773.3.8 实例易错点773.4 【实例】Feign的783.4.1 实例背景783.4.2 在cloud-admin-8084工程中增加 783.4.3 当前项目结构793.4.4 运行结果793.4.5 实例易错点803.5 Feign的配置813.5.1 传输数据压缩配置813.5.2 日志配置823.5.3 超时配置833.6 【实例】Feign的降级回退处理 ――Feign的Fallback类843.6.1 实例背景843.6.2 在资源配置文件中开启Feign内置 的Hystrix权限843.6.3 编写Fallback降级类843.6.4 Service整合Fallback降级类843.6.5 当前项目结构853.6.6 运行结果853.7 【实例】Feign的降级回退处理 ――Feign的Fallback工厂863.7.1 实例背景863.7.2 编写Fallback降级工厂863.7.3 整合Fallback降级工厂873.7.4 实例易错点873.8 本章小结883.9 习题88第4章 分布式的客户端负载均衡894.1 负载均衡894.1.1 传统服务器端负载均衡894.1.2 Ribbon客户端负载均衡894.2 【实例】Feign整合Ribbon分发 请求904.2.1 实例背景904.2.2 编写cloud-book-8086启动类与 配置类支持Ribbon914.2.3 Service和Controller924.2.4 当前项目结构944.2.5 运行效果954.2.6 实例易错点9.3 Ribbon的负载均衡策略配置974.4 本章小结984.5 习题98第5章 分布式的断路器995.1 断路器995.1.1 为什么需要断路器995.1.2 Hystrix995.1.3 Hystrix解决的问题1005.1.4 Hystrix如何解决问题1005.2 【实例】Hystrix断路器的降级 回退1015.2.1 实例背景1015.2.2 编写相关Pom文件1015.2.3 编写application资源配置文件1015.2.4 编写Ribbon配置类1025.2.5 编写启动类1025.2.6 编写Service类1035.2.7 编写Controller类1035.2.8 当前项目结构1045.2.9 运行结果1055.2.10 实例易错点1065.3 Hystrix线程池1085.3.1 Hystrix断路器注解式的命令 配置1095.3.2 Hystrix断路器的注解式线程池 配置1115.3.3 Hystrix断路器注解式的整体 定制配置1125.3.4 Hystrix断路器资源配置式的 整体定制配置1135.4 【实例】Hystrix断路器的请求 缓存1145.4.1 实例背景1145.4.2 通过Filter初始化Hystrix 上下文1145.4.3 让启动类扫描Filter过滤器1165.4.4 编写Controller的Helper类1165.4.5 编写Controller类1185.4.6 当前项目结构1185.4.7 运行结果1195.4.8 销毁Hystrix的请求缓存1215.4.9 实例易错点1215.5 【实例】Hystrix的请求合并1235.5.1 实例背景1235.5.2 增加@HystrixCollapser请求合并 修饰的函数1245.5.3 Controller中调用请求合并函数1265.5.4 当前项目结构1265.5.5 运行结果1275.5.6 实例易错点1285.6 【实例】Hystrix的可视化监控1295.6.1 实例背景1295.6.2 Hystrix可视化监控的依赖1295.6.3 Hystrix可视化监控的启动类1295.6.4 被监控的微服务增加响应地址1305.6.5 当前项目结构1315.6.6 运行结果1325.6.7 实例易错点1345.7 本章小结1355.8 习题135第6章 微服务的异步线程池1366.1 异步线程池1366.1.1 异步线程池特点1366.1.2 常见的线程池1366.2 【实例】创建无返回值异步线 程池1376.2.1 实例背景1376.2.2 编写Pom文件1376.2.3 编写Spring Boot启动类1386.2.4 编写异步线程池任务接口与 实现1386.2.5 编写外部可调用接口1396.2.6 当前项目结构1406.2.7 运行程序查看异步线程池效果1406.2.8 实例易错点1416.3 【实例】创建有返回值异步 线程池1416.3.1 实例背景1416.3.2 增加新的服务接口1416.3.3 增加新的服务实现1416.3.4 增加新的调用1426.3.5 当前项目结构1426.3.6 运行程序查看异步线程池效果1426.3.7 实例易错点1436.4 【实例】优化异步线程池1436.4.1 实例背景1436.4.2 创建初始化线程池配置类1436.4.3 更改无返回值的异步线程池 Service实现类1456.4.4 运行程序查看异步线程池效果1456.4.5 实例易错点1466.5 【实例】优雅停止异步线程池1466.5.1 实例背景1466.5.2 何为“优雅”1466.5.3 修改原Config配置类1476.5.4 修改原Controller控制层1486.5.5 当前项目结构1496.5.6 优雅停止异步线程池的执行 效果1506.5.7 实例易错点1526.6 @Enable*注解1526.7 本章小结1526.8 习题153第7章 微服务整合持久化数据源1547.1 spring-data1547.1.1 ORM规范1547.1.2 JPA、Hibernate、spring-data-jpa 之间的关系1557.1.3 安装MySQL1557.2 【实例】Spring Boot整合MyBaits 注解式编程1567.2.1 实例背景1567.2.2 添加Pom文件1567.2.3 编写application资源配置文件1577.2.4 编写dao层1577.2.5 编写访问接口1597.2.6 当前项目结构1607.2.7 运行效果1607.2.8 实例易错点1607.3 @Mapper注解详解1627.3.1 @Mapper和XML形式的对应 关系1627.3.2 MyBatis的注解式编程多表 查询1627.3.3 MyBatis的注解式编程分页 查询1637.3.4 注册DataSource数据源1657.4 【实例】Spring Boot整合 spring-data-jpa1667.4.1 实例背景1667.4.2 添加Pom文件1667.4.3 添加资源配置文件中的相关 信息1667.4.4 添加实体类映射1677.4.5 添加JPA的dao层1687.4.6 添加Controller控制层查询JPA的 dao层1697.4.7 当前项目结构1707.4.8 运行结果1707.4.9 实例易错点1707.5 本章小结1717.6 习题171第8章 微服务事务1728.1 @Transactional注解1728.1.1 @Transactional声明式事务的 传播行为1738.1.2 脏读、不可重复读与幻读1738.1.3 @Transactional声明式事务的 隔离级别1748.1.4 @Transactional声明式事务的 超时时间1758.1.5 @Transactional声明式事务的 只读1758.1.6 @Transactional声明式事务指定 异常1768.2 【实例】Spring Boot整合声明式 事务1768.2.1 实例背景1768.2.2 整合@Transactional的Service层 编写1778.2.3 整合@Transactional的Controller层 编写1788.2.4 当前项目结构1798.2.5 运行结果1798.2.6 实例易错点1808.3 本章小结1818.4 习题181第9章 微服务的缓存与分布式的消息 通信1829.1 Redis1829.1.1 BSD协议1829.1.2 Java与Redis的历史1839.1.3 Spring Data Redis1839.2 【实例】微服务整合Spring Data Redis增删改查1849.2.1 实例背景1849.2.2 编写application.properties资源 配置文件1849.2.3 配置RedisTemplate模板1859.2.4 编写操作Redis的工具类1869.2.5 编写实体类及接口调用1889.2.6 当前项目结构1899.2.7 运行结果1899.2.8 实例易错点1909.3 【实例】分布式使用Redis实现 消息通信1909.3.1 消息通信应用场景1909.3.2 Redis与MQ一系列消息队列的 区别1919.3.3 实例背景1919.3.4 在send微服务中配置模板1929.3.5 在send微服务中定时向队列 发布数据1929.3.6 在listener微服务中编写订阅渠道 的配置信息1939.3.7 在listener微服务中编写监听 实现类1959.3.8 当前项目结构1959.3.9 send微服务与listener微服务运行 结果1969.3.10 实例易错点1969.4 Spring Cache与Spring Data Redis 的区别1969.5 【实例】保持MySQL与Redis 数据一致性1979.5.1 实例背景1979.5.2 编写资源配置文件1989.5.3 编写实体类Java Bean1989.5.4 编写JPA仓库1999.5.5 编写Service接口及实现类1999.5.6 编写Controller接口进行测试2029.5.7 当前项目结构2029.5.8 运行结果2029.5.9 实例易错点2039.6 本章小结2049.7 习题2040章 微服务的任务调度与分布式的 任务调度20510.1 【实例】微服务整合任务调度20510.1.1 实例背景20510.1.2 编写任务调度实现类20510.1.3 编写资源配置文件20610.1.4 当前项目结构20610.1.5 运行效果20610.1.6 实例易错点20610.2 @Scheduled注解详解20710.2.1 cron表达式20710.2.2 每个字段允许值20710.2.3 cron特殊字符意义20810.2.4 常用cron表达式20810.3 任务调度的分布式20910.3.1 任务调度的分布式解决方案20910.3.2 任务调度的分布式实现原理21010.4 【实例】微服务整合任务调度 分布式21010.4.1 实例背景21010.4.2 增加Quartz依赖21010.4.3 在数据库中增加Quartz分布式 的管理表21010.4.4 编写资源配置文件21110.4.5 创建任务调度管理Java Bean21210.4.6 创建所需执行的任务21310.4.7 创建执行任务的操作类21310.4.8 增加控制层21610.4.9 当前项目结构21810.4.10 运行效果21810.4.11 实例易错点21910.5 本章小结22010.6 习题2201章 微服务的文件上传与分布式 文件管理22111.1 文件上传/下载原理22111.1.1 SpringMVC文件上传原理22311.1.2 文件下载原理22511.2 【实例】微服务的单文件和 多文件上传22611.2.1 实例背景22611.2.2 编写application.properties资 源配置文件22711.2.3 编写相关接口22811.2.4 编写前台页面23011.2.5 当前项目结构23111.2.6 运行结果23211.2.7 实例易错点23311.3 分布式文件管理23511.3.1 分布式文件管理特性23511.3.2 分布式文件管理解决的问题23511.3.3 分布式文件管理解决方案23511.4 FastDFS解决方案23511.4.1 FastDFS的存储策略23611.4.2 FastDFS的文件上传过程23611.4.3 FastDFS的文件同步过程23611.4.4 FastDFS的文件下载过程23711.5 FastDFS的安装部署23711.5.1 安装LibFastCommon23711.5.2 安装FastDFS23711.5.3 配置FastDFS的跟踪服务器23811.5.4 配置FastDFS的数据存储 服务器23911.5.5 配置FastDFS的客户端 并测试24011.5.6 安装Nginx部署FastDFS24011.6 【实例】分布式微服务整合 FastDFS24311.6.1 实例背景24311.6.2 编写FastDFS核心配置类24411.6.3 编写FastDFS工具类24411.6.4 编写测试接口24511.6.5 当前项目结构24611.6.6 运行结果24611.6.7 实例易错点24711.7 本章小结24811.8 习题2482章 扩展与部署24912.1 微服务分布式架构相关方案 总结24912.1.1 解决方案与目标24912.1.2 分布式部分技术细节扩展25012.1.3 动静分离25012.1.4 前后端分离25012.1.5 数据库读写分离与主从分离25112.1.6 应用层与数据层分离25112.1.7 CDN加速25112.1.8 异步架构25112.1.9 响应式编程25112.1.10 冗余化管理25212.1.11 灰度发布25212.1.12 页面静态化25212.1.13 服务端主动推送25312.2 微服务扩展25312.2.1 微服务整合日志25312.2.2 微服务整合单元测试25312.2.3 微服务整合全局异常25312.2.4 微服务整合JSR-303验证机制25412.2.5 微服务整合化25412.2.6 微服务整合安全与认证25412.2.7 微服务整合WebSocket协议25412.2.8 微服务整合HTTPS25512.2.9 微服务整合批处理25512.2.10 微服务整合lombok25512.2.11 微服务整合异步消息驱动25512.2.12 分布式链路监控25512.2.13 分布式单点登录25612.3 【实例】分布式网关的初步 测试25612.3.1 实例背景25612.3.2 使用资源配置文件的方式配置 分布式网关25612.3.3 使用注册Bean的方式配置 分布式网关25712.3.4 运行结果25812.4 微服务打包25812.4.1 Jar包25812.4.2 War包25912.5 本章小结25912.6 习题259参考文献260

内容简介

微服务分布式架构的内容更新迭代速度极快,2018年6月开始就有许多微服务分布式的数据,但是到2019年已经跟不上Spring Cloud的版本了,过去大多数数据Spring Cloud都用Eureka作为注册中心,而Spring 官方已经在Spring Cloud Eureka 2.0以后宣布停止了Spring Cloud Eureka的更新计划,废弃该项目并将Consul作为Spring Cloud的注册中心。另外大多数书籍的网关依旧使用的Spring Cloud Zuul,但是目前Spring 已经逐渐废弃Spring Cloud Zuul,而是让Spring Cloud Gateway接替他的网关位置。市面上的同类书的技术将没有将此内容更新。另外本书从分布式架构程序的方式角度进行讲解,包括分布式任务调度、分布式事务管理,重点提及了这部分的实战与思想。很多书只是用来教导框架构架,而本书等
张方兴 著
张方兴,多年从事Java编程工作,参与多个项目的研发工作,精通Java编程与SSM技术。