书籍 微服务分布式架构基础与实战的封面

微服务分布式架构基础与实战PDF电子书下载

张方兴编著

购买点数

11

出版社

北京:电子工业出版社

出版时间

2020

ISBN

标注页数

260 页

PDF页数

273 页

图书目录

第1章 微服务分布式架构设计原理 1

1.1 Java Web应用程序的发展历史 1

1.2微服务分布式 2

1.2.1 Spring Boot 微服务的定义和特点 3

1.2.2 Spring Boot的职场导读 3

1.2.3 Spring部分内容 4

1.2.4微服务的拆分 6

1.3【实例】微服务工程Hello World 7

1.3.1实例背景 7

1.3.2创建Maven Project 7

1.3.3使用空Maven Project模板 7

1.3.4编辑Maven坐标定位及工程名 8

1.3.5检查Maven目录结构 9

1.3.6编写Pom文件 10

1.3.7 Spring Boot依赖包的导入 12

1.3.8编写Spring Boot启动类 14

1.3.9编写Spring Boot接口 14

1.3.10当前项目结构 14

1.3.11启动工程 15

1.3.12 Spring Boot初始化启动后 16

1.3.13实例易错点 16

1.4 Spring Boot启动类扫描Bean 18

1.4.1@SpringBootApplication注解 18

1.4.2@ComponentScan注解 20

1.4.3 Spring Boot扫描其他包下文件 20

1.5【实例】将端口号改成9090 21

1.5.1实例背景 21

1.5.2创建application.properties资源配置文件 22

1.5.3增加资源配置文件中的配置信息 23

1.5.4运行结果 23

1.5.5实例易错点 23

1.6 YAML文件 24

1.6.1 YAML文件简介 25

1.6.2 YAML文件的书写格式 25

1.7【实例】使用YAML配置文件 25

1.7.1实例背景 25

1.7.2原properties文件 25

1.7.3转换格式后的YAML文件 26

1.7.4实例易错点 26

1.8【实例】通过单配置文件让工程适应多应用场景 27

1.8.1实例背景 27

1.8.2更改application.yml文件 27

1.8.3更改启动类 27

1.8.4输入启动参数 29

1.8.5运行结果 30

1.8.6实例易错点 30

1.9【实例】通过多配置文件使工程适应多应用场景 31

1.9.1实例背景 31

1.9.2新建SIT和UAT环境所需资源配置文件 31

1.9.3新建系统资源配置文件 31

1.9.4编写启动类 31

1.9.5当前项目结构 32

1.9.6运行结果 32

1.10微服务配置权重 32

1.10.1资源配置信息类型的权重 32

1.10.2资源配置文件类型的权重 33

1.10.3资源配置文件存在位置与权重解读 33

1.11本章小结 34

1.12习题 34

第2章 分布式的注册中心 35

2.1注册中心 35

2.1.1 Eureka与Consul的区别 35

2.1.2 Consul的相关术语 37

2.1.3 Consul的安装 37

2.2 Consul的常用命令 37

2.2.1 consul agent -dev 38

2.2.2 consul -members 39

2.2.3 consul leave 40

2.2.4 agent命令的常用配置参数 40

2.2.5 HTTP API 41

2.3【实例】创建第一个微服务分布式项目 42

2.3.1实例背景 42

2.3.2搭建Consul集群 42

2.3.3创建微服务工程编写相应依赖文件 45

2.3.4 Spring Cloud和Spring Boot的版本对应关系 46

2.3.5编写微服务YAML资源配置文件 46

2.3.6编写微服务启动类注册到Consul上 48

2.3.7当前项目结构 48

2.3.8运行结果 49

2.3.9实例易错点 50

2.4【实例】通过代码获取Consul中的服务信息 51

2.4.1实例背景 51

2.4.2编写获得其他注册服务的代码 52

2.4.3运行结果 53

2.4.4实例易错点 53

2.5【实例】Spring Cloud操作Consul的K/V存储 54

2.5.1实例背景 54

2.5.2添加依赖 54

2.5.3利用Consul的UI界面添加K/V存储 54

2.5.4编写YAML资源配置文件对应K/V存储 55

2.5.5编写MyConfig.java文件对应相关K/V存储 56

2.5.6调用MyConfig.java中的参数 57

2.5.7在启动类引用相关配置 57

2.5.8当前项目结构 58

2.5.9运行结果 58

2.5.10实例易错点 60

2.6本章小结 60

2.7习题 60

第3章 分布式的通信 61

3.1分布式通信 61

3.1.1 Spring Cloud Feign 61

3.1.2 Swagger 61

3.2【实例】微服务集成Swagger 62

3.2.1实例背景 62

3.2.2编写Swagger依赖 62

3.2.3编写Swagger配置 63

3.2.4编写接口与接口处的Swagger配置 64

3.2.5当前项目结构 66

3.2.6运行效果 66

3.2.7实例易错点 70

3.3【实例】 Feign调用微服务接口 72

3.3.1实例背景 72

3.3.2引入相关配置信息 73

3.3.3编写Feign客户端 73

3.3.4编写调用 75

3.3.5编写启动类 76

3.3.6当前项目结构 76

3.3.7运行结果 77

3.3.8实例易错点 77

3.4【实例】Feign的拦截器 78

3.4.1实例背景 78

3.4.2在cloud-admin-8084工程中增加拦截器 78

3.4.3当前项目结构 79

3.4.4运行结果 79

3.4.5实例易错点 80

3.5 Feign的配置 81

3.5.1传输数据压缩配置 81

3.5.2日志配置 82

3.5.3超时配置 83

3.6【实例】Feign的降级回退处理—— Feign的Fallback类 84

3.6.1实例背景 84

3.6.2在资源配置文件中开启Feign内置的Hystrix权限 84

3.6.3编写Fallback降级类 84

3.6.4 Service整合Fallback降级类 84

3.6.5当前项目结构 85

3.6.6运行结果 85

3.7【实例】Feign的降级回退处理——Feign的Fallback工厂 86

3.7.1实例背景 86

3.7.2编写Fallback降级工厂 86

3.7.3整合Fallback降级工厂 87

3.7.4实例易错点 87

3.8本章小结 88

3.9习题 88

第4章 分布式的客户端负载均衡 89

4.1负载均衡 89

4.1.1传统服务器端负载均衡 89

4.1.2 Ribbon客户端负载均衡 89

4.2【实例】Feign整合Ribbon分发请求 90

4.2.1实例背景 90

4.2.2编写cloud-book-8086启动类与配置类支持Ribbon 91

4.2.3 Service和Controller 92

4.2.4当前项目结构 94

4.2.5运行效果 95

4.2.6实例易错点 96

4.3 Ribbon的负载均衡策略配置 97

4.4本章小结 98

4.5习题 98

第5章 分布式的断路器 99

5.1断路器 99

5.1.1为什么需要断路器 99

5.1.2 Hystrix 99

5.1.3 Hystrix解决的问题 100

5.1.4 Hystrix如何解决问题 100

5.2【实例】Hystrix断路器的降级回退 101

5.2.1实例背景 101

5.2.2编写相关Pom文件 101

5.2.3编写application资源配置文件 101

5.2.4编写Ribbon配置类 102

5.2.5编写启动类 102

5.2.6编写Service类 103

5.2.7编写Controller类 103

5.2.8当前项目结构 104

5.2.9运行结果 105

5.2.10实例易错点 106

5.3 Hystrix线程池 108

5.3.1 Hystrix断路器注解式的命令配置 109

5.3.2 Hystrix断路器的注解式线程池配置 111

5.3.3 Hystrix断路器注解式的整体定制配置 112

5.3.4 Hystrix断路器资源配置式的整体定制配置 113

5.4【实例】Hystrix断路器的请求缓存 114

5.4.1实例背景 114

5.4.2通过Filter初始化Hystrix上下文 114

5.4.3让启动类扫描Filter过滤器 116

5.4.4编写Controller的Helper类 116

5.4.5编写Controller类 118

5.4.6当前项目结构 118

5.4.7运行结果 119

5.4.8销毁Hystrix的请求缓存 121

5.4.9实例易错点 121

5.5【实例】Hystrix的请求合并 123

5.5.1实例背景 123

5.5.2增加@HystrixCollapser请求合并修饰的函数 124

5.5.3 Controller中调用请求合并函数 126

5.5.4当前项目结构 126

5.5.5运行结果 127

5.5.6实例易错点 128

5.6【实例】Hystrix的可视化监控 129

5.6.1实例背景 129

5.6.2 Hystrix可视化监控的依赖 129

5.6.3 Hystrix可视化监控的启动类 129

5.6.4被监控的微服务增加响应地址 130

5.6.5当前项目结构 131

5.6.6运行结果 132

5.6.7实例易错点 134

5.7本章小结 135

5.8习题 135

第6章 微服务的异步线程池 136

6.1异步线程池 136

6.1.1异步线程池特点 136

6.1.2常见的线程池 136

6.2【实例】创建无返回值异步线程池 137

6.2.1实例背景 137

6.2.2编写Pom文件 137

6.2.3编写Spring Boot启动类 138

6.2.4编写异步线程池任务接口与实现 138

6.2.5编写外部可调用接口 139

6.2.6当前项目结构 140

6.2.7运行程序查看异步线程池效果 140

6.2.8实例易错点 141

6.3【实例】创建有返回值异步线程池 141

6.3.1实例背景 141

6.3.2增加新的服务接口 141

6.3.3增加新的服务实现 141

6.3.4增加新的调用 142

6.3.5当前项目结构 142

6.3.6运行程序查看异步线程池效果 142

6.3.7实例易错点 143

6.4【实例】优化异步线程池 143

6.4.1实例背景 143

6.4.2创建初始化线程池配置类 143

6.4.3更改无返回值的异步线程池Service实现类 145

6.4.4运行程序查看异步线程池效果 145

6.4.5实例易错点 146

6.5【实例】优雅停止异步线程池 146

6.5.1实例背景 146

6.5.2何为“优雅” 146

6.5.3修改原Config配置类 147

6.5.4修改原Controller控制层 148

6.5.5当前项目结构 149

6.5.6优雅停止异步线程池的执行效果 150

6.5.7实例易错点 152

6.6@Enable*注解 152

6.7本章小结 152

6.8习题 153

第7章 微服务整合持久化数据源 154

7.1 spring-data 154

7.1.1 ORM规范 154

7.1.2 JPA、Hibernate、 spring-data-jpa之间的关系 155

7.1.3安装MySQL 155

7.2【实例】Spring Boot整合MyBaits注解式编程 156

7.2.1实例背景 156

7.2.2添加Pom文件 156

7.2.3编写application资源配置文件 157

7.2.4编写dao层 157

7.2.5编写访问接口 159

7.2.6当前项目结构 160

7.2.7运行效果 160

7.2.8实例易错点 160

7.3@Mapper注解详解 162

7.3.1@Mapper和XML形式的对应关系 162

7.3.2 MyBatis的注解式编程多表查询 162

7.3.3 MyBatis的注解式编程分页查询 163

7.3.4注册DataSource数据源 165

7.4【实例】Spring Boot整合spring-data-jpa 166

7.4.1实例背景 166

7.4.2添加Pom文件 166

7.4.3添加资源配置文件中的相关信息 166

7.4.4添加实体类映射 167

7.4.5添加JPA的dao层 168

7.4.6添加Controller控制层查询JPA的dao层 169

7.4.7当前项目结构 170

7.4.8运行结果 170

7.4.9实例易错点 170

7.5本章小结 171

7.6习题 171

第8章 微服务事务 172

8.1@Transactional注解 172

8.1.1@Transactional声明式事务的传播行为 173

8.1.2脏读、不可重复读与幻读 173

8.1.3@Transactional声明式事务的隔离级别 174

8.1.4@Transactional声明式事务的超时时间 175

8.1.5@Transactional声明式事务的只读 175

8.1.6@Transactional声明式事务指定异常 176

8.2【实例】 Spring Boot整合声明式事务 176

8.2.1实例背景 176

8.2.2整合@Transactional的Service层编写 177

8.2.3整合@Transactional的Controller层编写 178

8.2.4当前项目结构 179

8.2.5运行结果 179

8.2.6实例易错点 180

8.3本章小结 181

8.4习题 181

第9章 微服务的缓存与分布式的消息通信 182

9.1 Redis 182

9.1.1 BSD协议 182

9.1.2 Java与Redis的历史 183

9.1.3 Spring Data Redis 183

9.2【实例】微服务整合Spring DataRedis增删改查 184

9.2.1实例背景 184

9.2.2编写application.properties资源配置文件 184

9.2.3配置RedisTemplate模板 185

9.2.4编写操作Redis的工具类 186

9.2.5编写实体类及接口调用 188

9.2.6当前项目结构 189

9.2.7运行结果 189

9.2.8实例易错点 190

9.3【实例】分布式使用Redis实现消息通信 190

9.3.1消息通信应用场景 190

9.3.2 Redis与MQ一系列消息队列的区别 191

9.3.3实例背景 191

9.3.4在send微服务中配置模板 192

9.3.5在send微服务中定时向队列发布数据 192

9.3.6在listener微服务中编写订阅渠道的配置信息 193

9.3.7在listener微服务中编写监听实现类 195

9.3.8当前项目结构 195

9.3.9 send微服务与listener微服务运行结果 196

9.3.10实例易错点 196

9.4 Spring Cache与Spring Data Redis的区别 196

9.5【实例】保持MySQL与Redis数据一致性 197

9.5.1实例背景 197

9.5.2编写资源配置文件 198

9.5.3编写实体类Java Bean 198

9.5.4编写JPA仓库 199

9.5.5编写Service接口及实现类 199

9.5.6编写Controller接口进行测试 202

9.5.7当前项目结构 202

9.5.8运行结果 202

9.5.9实例易错点 203

9.6本章小结 204

9.7习题 204

第10章 微服务的任务调度与分布式的任务调度 205

10.1【实例】微服务整合任务调度 205

10.1.1实例背景 205

10.1.2编写任务调度实现类 205

10.1.3编写资源配置文件 206

10.1.4当前项目结构 206

10.1.5运行效果 206

10.1.6实例易错点 206

10.2@Scheduled注解详解 207

10.2.1 cron表达式 207

10.2.2每个字段允许值 207

10.2.3 cron特殊字符意义 208

10.2.4常用cron表达式 208

10.3任务调度的分布式 209

10.3.1任务调度的分布式解决方案 209

10.3.2任务调度的分布式实现原理 210

10.4【实例】微服务整合任务调度分布式 210

10.4.1实例背景 210

10.4.2增加Quartz依赖 210

10.4.3在数据库中增加Quartz分布式的管理表 210

10.4.4编写资源配置文件 211

10.4.5创建任务调度管理Java Bean 212

10.4.6创建所需执行的任务 213

10.4.7创建执行任务的操作类 213

10.4.8增加控制层 216

10.4.9当前项目结构 218

10.4.10运行效果 218

10.4.11实例易错点 219

10.5本章小结 220

10.6习题 220

第11章 微服务的文件上传与分布式文件管理 221

11.1文件上传/下载原理 221

11.1.1 SpringMVC文件上传原理 223

11.1.2文件下载原理 225

11.2【实例】微服务的单文件和多文件上传 226

11.2.1实例背景 226

11.2.2编写application.properties资源配置文件 227

11.2.3编写相关接口 228

11.2.4编写前台页面 230

11.2.5当前项目结构 231

11.2.6运行结果 232

11.2.7实例易错点 233

11.3分布式文件管理 235

11.3.1分布式文件管理特性 235

11.3.2分布式文件管理解决的问题 235

11.3.3分布式文件管理解决方案 235

11.4 FastDFS解决方案 235

11.4.1 FastDFS的存储策略 236

11.4.2 FastDFS的文件上传过程 236

11.4.3 FastDFS的文件同步过程 236

11.4.4 FastDFS的文件下载过程 237

11.5 FastDFS的安装部署 237

11.5.1安装LibFastCommon 237

11.5.2安装FastDFS 237

11.5.3配置FastDFS的跟踪服务器 238

11.5.4配置FastDFS的数据存储服务器 239

11.5.5配置FastDFS的客户端并测试 240

11.5.6安装Nginx部署FastDFS 240

11.6【实例】分布式微服务整合FastDFS 243

11.6.1实例背景 243

11.6.2编写FastDFS核心配置类 244

11.6.3编写FastDFS工具类 244

11.6.4编写测试接口 245

11.6.5当前项目结构 246

11.6.6运行结果 246

11.6.7实例易错点 247

11.7本章小结 248

11.8习题 248

第12章 扩展与部署 249

12.1微服务分布式架构相关方案总结 249

12.1.1解决方案与目标 249

12.1.2分布式部分技术细节扩展 250

12.1.3动静分离 250

12.1.4前后端分离 250

12.1.5数据库读写分离与主从分离 251

12.1.6应用层与数据层分离 251

12.1.7 CDN加速 251

12.1.8异步架构 251

12.1.9响应式编程 251

12.1.10冗余化管理 252

12.1.11灰度发布 252

12.1.12页面静态化 252

12.1.13服务端主动推送 253

12.2微服务扩展 253

12.2.1微服务整合日志 253

12.2.2微服务整合单元测试 253

12.2.3微服务整合全局异常 253

12.2.4微服务整合JSR-303验证机制 254

12.2.5微服务整合国际化 254

12.2.6微服务整合安全与认证 254

12.2.7微服务整合WebSocket协议 254

12.2.8微服务整合HTTPS 255

12.2.9微服务整合批处理 255

12.2.10微服务整合lom 255

12.2.11微服务整合异步消息驱动 255

12.2.12分布式链路监控 255

12.2.13分布式单点登录 256

12.3【实例】分布式网关的初步测试 256

12.3.1实例背景 256

12.3.2使用资源配置文件的方式配置分布式网关 256

12.3.3使用注册Bean的方式配置分布式网关 257

12.3.4运行结果 258

12.4微服务打包 258

12.4.1 Jar包 258

12.4.2 War包 259

12.5本章小结 259

12.6习题 259

参考文献 260

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包