Java微服务实战 赵计刚 9787121328404pdf下载

Java微服务实战 赵计刚 9787121328404百度网盘pdf下载

作者:
简介:Java微服务实战 赵计刚 9787121328404
出版社:
出版时间:2017-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:Java微服务实战

定价:69.00元

售价:53.1元,便宜15.9元,折扣76

作者:赵计刚

出版社:电子工业出版社

出版日期:2017-10-01

ISBN:9787121328404

字数:

页码:

版次:1

装帧:平装-胶订

开本:16开

商品重量:0.4kg

编辑推荐


内容提要


本书分为三部分:基础框架篇(1~6章)、服务框架篇(7~10章)、监控部署篇(11~13章),由浅入深来讲解微服务的相关技*。基础框架篇从微服务架构的基本概念与技*选型出发,详细的介绍了微服务基础框架SpringBoot、自动化API文档生成工具Swagger、动态数据源和缓存系统,并深入的分析了SpringBoot启动过程的核心源码,这一部分是整本书的基础;服务框架篇详细的介绍了服务注册与发现框架Consul、热配置管理框架Archaius、服务降级容错框架Hystrix,以及服务通信框架OkHttp、AsyncHttpClient和Retrofit,这一部分是整本书的核心;监控部署篇详细的介绍了ELK日志系统的实现、Zipkin全链路追踪系统的实现,*后介绍了持续集成与持续部署系统的实现,这一部分是开发运维的部分。

目录


目录

章 微服务概述1
1.1 初识微服务1
1.1.1 什么是微服务1
1.1.2 为什么需要微服务2
1.1.3 微服务架构的缺点3
1.2 微服务中的组件与技*选型4
2章 微服务基础框架10
2.1 SpringBoot的优势10
2.2 SpringBoot入门10
2.2.1 搭建项目框架10
2.2.2 开发个SpringBoot程序11
2.2.3 运行SpringBoot项目14
2.3 再学一招:使用Maven依赖树验证SpringBoot自动引包功能15
3章 微服务文档输出17
3.1 Swagger概述17
3.2 如何使用Swagger17
3.2.1 搭建项目框架17
3.2.2 SpringBoot集成Swagger18
3.2.3 分析Swagger生成的API文档23
3.2.4 使用Swagger进行接口调用23
3.3 再学一招:使用Lombok消除POJO类模板代码24
4章 微服务数据库26
4.1 单数据源26
4.1.1 搭建项目框架26
4.1.2 建库和建表27
4.1.3 使用Myb*is-Gener*or生成数据访问层27
4.1.4 SpringBoot集成Myb*is29
4.2 多数据源38
4.2.1 建库和建表39
4.2.2 使用Myb*is-Gener*or生成数据访问层40
4.2.3 结合Abstra*RoutingD*aSource实现动态数据源41
4.2.4 使用AOP简化数据源选择功能47
4.2.5 实现多数据源的步骤总结48
4.3 再学一招:Myb*is-Gener*or基本用法49
5章 微服务缓存系统52
5.1 常用的缓存技*52
5.1.1 本地缓存与分布式缓存52
5.1.2 Memcached与Redis53
5.2 Redis2.x客户端分*53
5.2.1 安装Redis53
5.2.2 SpringBoot集成ShardJedis54
5.3 Redis3.x集*59
5.3.1 搭建Redis集*59
5.3.2 SpringBoot集成JedisCluster62
5.3.3 JedisCluster关键源码解析64
5.4 再学一招:使用GuavaCache实现本地缓存66
6章 SpringBoot启动源码解析69
6.1 创建SpringApplic*ion实例70
6.1.1 判断是否是Web环境71
6.1.2 创建并初始化Applic*ionInitializer列表71
6.1.3 创建并初始化Applic*ionListener列表74
6.1.4 初始化主类*inApplic*ionClass75
6.2 添加自定义监听器75
6.3 启动核心run方法76
6.3.1 创建启动停止计时器77
6.3.2 配置awt系统属性78
6.3.3 获取SpringApplic*ionRunListene*79
6.3.4 启动SpringApplic*ionRunListener80
6.3.5 创建Applic*ionArguments80
6.3.6 创建并初始化ConfigurableEnvironment81
6.3.7 打印Banner87
6.3.8 创建ConfigurableApplic*ionContext87
6.3.9 准备ConfigurableApplic*ionContext89
6.3.10 刷新ConfigurableApplic*ionContext91
6.3.11 容器刷新后动作93
6.3.12 SpringApplic*ionRunListene*发布finish事件94
6.3.13 计时器停止计时94
6.4 再学一招:常用的获取属性的4种姿势94
7章 微服务注册与发现96
7.1 初识Consul96
7.2 搭建Consul集*97
7.2.1 安装Consul97
7.2.2 启动Consul集*97
7.2.3 启动Consul-UI99
7.3 使用Consul实现服务注册与服务发现100
7.3.1 搭建项目框架100
7.3.2 配置服务注册信息102
7.3.3 实现服务启动注册104
7.3.4 实现服务发现106
7.4 服务部署测试108
7.4.1 编写测试类108
7.4.2 服务打包部署109
7.4.3 运行测试111
7.5 使用Consul与A*u*or实现健康检查111
7.5.1 健康检查机制111
7.5.2 健康检查查错思路111
7.6 再学一招:Consul健康检查分类及原理112
8章 微服务配置管理114
8.1 初识Archaius114
8.1.1 为什么要使用Archaius114
8.1.2 Archaius原理114
8.2 使用Consul-KV实现配置集中管理115
8.3 使用Archaius实现动态获取配置116
8.3.1 搭建项目框架116
8.3.2 创建配置信息读取源118
8.3.3 实现服务启动时读取配置信息120
8.3.4 动态获取配置信息122
8.3.5 将配置信息动态加入Spring属性源的思路123
8.4 再学一招:Archaius关键源码解析123
8.4.1 构造动态属性源123
8.4.2 动态获取属性127
9章 微服务进程间通信129
9.1 常见的三种服务通信技*129
9.2 创建一个简单的被调用服务130
9.2.1 搭建项目框架130
9.2.2 实现一个简单的被调用接口132
9.3 使用OkHttp实现服务通信134
9.3.1 搭建项目框架134
9.3.2 创建OkHttp调用实体类135
9.3.3 实现服务通信功能136
9.3.4 SpringBoot指定服务启动端口的三种姿势138
9.4 使用AsyncHttpClient实现服务通信139
9.4.1 搭建项目框架139
9.4.2 创建AsyncHttpClient调用实体类139
9.4.3 实现服务通信功能140
9.5 使用Retrofit实现服务通信141
9.5.1 搭建项目框架141
9.5.2 创建调用接口并实例化接口141
9.5.3 实现服务通信功能143
9.6 再学一招:Retrofit源码解析143
9.6.1 构造RestAdapter144
9.6.2 初始化RestAdapter.Builder属性146
9.6.3 创建RestAdapter实例149
9.6.4 构造请求方法的接口类150
9.6.5 校验service接口的合法性151
9.6.6 使用动态代理创建对象152
9.6.7 进行请求调用152
9.6.8 获取RestMethodInfo实例154
9.6.9 进行方法调用154
9.6.10 加载RestMethodInfo的剩余属性156
9.6.11 构建请求参数retrofit.client.Request160
9.6.12 利用clientProvider进行真正的调用161
9.6.13 处理响应162
0章 微服务降级容错163
10.1 初识Hystrix163
10.1.1 为什么要使用Hystrix163
10.1.2 Hystrix工作原理164
10.1.3 Hystrix执行流程166
10.2 使用Hystrix实现服务降级容错167
10.2.1 搭建项目框架167
10.2.2 创建AsyncHttpClient调用实体类170
10.2.3 服务通信框架集成服务降级容错功能171
10.2.4 验证服务降级容错功能173
10.3 搭建Hystrix监控系统176
10.3.1 使用Hystrix-Metrics-Event-Stream发布监控信息176
10.3.2 使用Hystrix-Das*oard展示监控信息177
10.3.3 使用Turbine聚合监控信息179
10.1 再学一招:Hystrix常用配置184
10.1.1 设置配置参数的两种方法184
10.4.2 常见配置项的配置方式184
1章 微服务日志系统187
11.1 初识ELK187
11.1.1 为什么要用ELK187
11.1.2 ELK常用的两种架构188
11.2 搭建ELK系统189
11.2.1 安装配置启动Redis190
11.2.2 安装配置启动Elasticsearch190
11.2.3 安装配置启动Logstash-Shipper192
11.2.4 安装配置启动Logstash-Indexer194
11.2.5 安装配置启动Kibana195
11.3 使用LogbackAppender发送日志196
11.3.1 搭建项目框架196
11.3.2 配置logback.xml文件198
11.3.3 创建LogbackAppender发送日志199
11.3.4 验证日志输出查询功能201
11.4 Kibana常见用法203
11.4.1 日期选择203
11.4.2 自动刷新204
11.4.3 查询语法204
11.5 再学一招:使用Cur*or定时删除日志205
11.5.1 安装Cur*or205
11.5.2 配置Cur*or206
11.5.3 配置crontab定时任务208
11.5.4 验证定时任务208
2章 微服务全链路追踪系统210
12.1 初识Zipkin210
12.1.1 为什么要使用Zipkin210
12.1.2 Zipkin工作流程211
12.1.3 Zipkin数据模型213
12.1.4 Zipkin工作原理213
12.2 使用Zipkin搭建全链路追踪系统215
12.3 使用Brave AsyncHttpClient实现全链路追踪217
12.3.1 搭建项目框架217
12.3.2 使用服务端拦截器补充追踪信息219
12.3.3 使用客户端拦截器创建销毁追踪信息223
12.3.4 使用Zipkin-webUI查询链路追踪信息225
12.4 使用MySQL持久化追踪信息227
12.4.1 创建三张追踪信息表227
12.4.2 使用Brave-MySQL存储追踪信息230
12.5 使用Brave-OkHttp实现全链路追踪230
12.5.1 搭建项目框架231
12.5.2 使用服务端与客户端拦截器收集追踪信息233
12.6 再学一招:Brave关键源码解析236
12.6.1 span的生命周期236
12.6.2 使用reporter创建span237
12.6.3 使用colle*or收集span242
12.6.4 使用colle*or发送span244
3章 微服务持续集成与持续部署系统248
13.1 初识持续集成与持续部署系统248
13.2 系统总体架构249
13.2.1 初识GitLab249
13.2.2 初识Jenkins250
13.2.3 初识Docker-Regsitry250
13.3 持续集成与持续部署系统工作原理250
13.3.1 使用*ar包部署项目的整体流程250
13.3.2 使用Docker镜像部署项目的整体流程250
13.4 搭建持续集成与持续部署系统251
13.4.1 安装启动Docker251
13.4.2 安装配置启动GitLab252
13.4.3 安装启动Jenkins254
13.4.4 配置Jenkins全局信息与安装*件256
13.4.5 安装配置启动Docker-Registry257
13.5 使用*ar包方式部署服务258
13.5.1 搭建项目框架258
13.5.2 使用GitLab创建组和项目260
13.5.3 使用GitLab管理代码263
13.5.4 使用Jenkins编译打包服务264
13.5.5 使用webhook实现服务的持续集成267
13.5.6 使用Jenkins Shell实现服务的持续部署269
13.6 使用Docker镜像方式部署服务273
13.6.1 搭建项目框架273
13.6.2 编写Dockerfile文件创建镜像275
13.6.3 通过Jenkins Shell使用镜像实现持续部署276
13.6.4 分析Jenkins构建日志277
13.7 再学一招:Docker常用命令278

作者介绍


赵计刚,现任网易高级Java开发工程师。2016年7月毕业于哈尔滨工业大学软件学院。2016年3月加入51*,开始接触微服务架构,之后一直在从事微服务的开发与研究,学习与总结了不少微服务架构相关的理论与实践经验。个人是开源技*的拥趸,对新技*充满浓厚的兴趣,尤其是微服务架构相关技*。

文摘


序言