您好,欢迎来到聚文网。 登录 免费注册
Java微服务实战

Java微服务实战

  • 字数: 386千字
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 作者: 赵计刚 著
  • 出版日期: 2017-11-01
  • 商品条码: 9787121328404
  • 版次: 1
  • 开本: 16开
  • 页数: 283
  • 出版年份: 2017
定价:¥69 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书分为三部分:基础框架篇(1~6章)、服务框架篇(7~10章)、监控部署篇(11~13章),由浅入深来讲解微服务的相关技术。基础框架篇从微服务架构的基本概念与技术选型出发,详细的介绍了微服务基础框架SpringBoot、自动化API文档生成工具Swagger、动态数据源和缓存系统,并深入的分析了SpringBoot启动过程的核心源码,这一部分是整本书的基础;服务框架篇详细的介绍了服务注册与发现框架Consul、热配置管理框架Archaius、服务降级容错框架Hystrix,以及服务通信框架OkHttp、AsyncHttpClient和Retrofit,这一部分是整本书的核心;监控部署篇详细的介绍了ELK日志系统的实现、Zipkin全链路追踪系统的实现,很后介绍了持续集成与持续部署系统的实现,这一部分是开发运维的部分。
作者简介
赵计刚,现任网易不错Java开发工程师。2016年7月毕业于哈尔滨工业大学软件学院。2016年3月加入51信用卡,开始接触微服务架构,之后一直在从事微服务的开发与研究,学习与总结了不少微服务架构相关的理论与实践经验。个人是开源技术的拥趸,对新技术充满浓厚的兴趣,尤其是微服务架构相关技术。
目录
第1章微服务概述1
1.1初识微服务1
1.1.1什么是微服务1
1.1.2为什么需要微服务2
1.1.3微服务架构的缺点3
1.2微服务中的组件与技术选型4
第2章微服务基础框架10
2.1SpringBoot的优势10
2.2SpringBoot入门10
2.2.1搭建项目框架10
2.2.2开发第一个SpringBoot程序11
2.2.3运行SpringBoot项目14
2.3再学一招:使用Maven依赖树验证SpringBoot自动引包功能15
第3章微服务文档输出17
3.1Swagger概述17
3.2如何使用Swagger17
3.2.1搭建项目框架17
3.2.2SpringBoot集成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使用Mybatis-Generator生成数据访问层27
4.1.4SpringBoot集成Mybatis29
4.2多数据源38
4.2.1建库和建表39
4.2.2使用Mybatis-Generator生成数据访问层40
4.2.3结合AbstractRoutingDataSource实现动态数据源41
4.2.4使用AOP简化数据源选择功能47
4.2.5实现多数据源的步骤总结48
4.3再学一招:Mybatis-Generator基本用法49
第5章微服务缓存系统52
5.1常用的缓存技术52
5.1.1本地缓存与分布式缓存52
5.1.2Memcached与Redis53
5.2Redis2.x客户端分片53
5.2.1安装Redis53
5.2.2SpringBoot集成ShardJedis54
5.3Redis3.x集群59
5.3.1搭建Redis集群59
5.3.2SpringBoot集成JedisCluster62
5.3.3JedisCluster关键源码解析64
5.4再学一招:使用GuavaCache实现本地缓存66
第6章SpringBoot启动源码解析69
6.1创建SpringApplication实例70
6.1.1判断是否是Web环境71
6.1.2创建并初始化ApplicationInitializer列表71
6.1.3创建并初始化ApplicationListener列表74
6.1.4初始化主类mainApplicationClass75
6.2添加自定义监听器75
6.3启动核心run方法76
6.3.1创建启动停止计时器77
6.3.2配置awt系统属性78
6.3.3获取SpringApplicationRunListeners79
6.3.4启动SpringApplicationRunListener80
6.3.5创建ApplicationArguments80
6.3.6创建并初始化ConfigurableEnvironment81
6.3.7打印Banner87
6.3.8创建ConfigurableApplicationContext87
6.3.9准备ConfigurableApplicationContext89
6.3.10刷新ConfigurableApplicationContext91
6.3.11容器刷新后动作93
6.3.12SpringApplicationRunListeners发布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与Actuator实现健康检查111
7.5.1健康检查机制111
7.5.2健康检查查错思路111
7.6再学一招:Consul健康检查分类及原理112
第8章微服务配置管理114
8.1初识Archaius114
8.1.1为什么要使用Archaius114
8.1.2Archaius原理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.4SpringBoot指定服务启动端口的三种姿势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
第10章微服务降级容错163
10.1初识Hystrix163
10.1.1为什么要使用Hystrix163
10.1.2Hystrix工作原理164
10.1.3Hystrix执行流程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-Dashboard展示监控信息177
10.3.3使用Turbine聚合监控信息179
10.1再学一招:Hystrix常用配置184
10.1.1设置配置参数的两种方法184
10.4.2常见配置项的配置方式184
第11章微服务日志系统187
11.1初识ELK187
11.1.1为什么要用ELK187
11.1.2ELK最常用的两种架构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.4Kibana常见用法203
11.4.1日期选择203
11.4.2自动刷新204
11.4.3查询语法204
11.5再学一招:使用Curator定时删除日志205
11.5.1安装Curator205
11.5.2配置Curator206
11.5.3配置crontab定时任务208
11.5.4验证定时任务208
第12章微服务全链路追踪系统210
12.1初识Zipkin210
12.1.1为什么要使用Zipkin210
12.1.2Zipkin工作流程211
12.1.3Zipkin数据模型213
12.1.4Zipkin工作原理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.1span的生命周期236
12.6.2使用reporter创建span237
12.6.3使用collector收集span242
12.6.4使用collector发送span244
第13章微服务持续集成与持续部署系统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使用jar包部署项目的整体流程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使用jar包方式部署服务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

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网