版权注意事项: 1 、书籍版权归作者和出版社所有 2 、本 PDF仅限用于个人获取知识,进行私底下的知识交流 3 、 PDF 获得者不得在互联网上以任何目的进行传播 4 、如觉得书籍内容很赞,请购买正版实体书,支持作者 5 、请于下载 PDF 后 24 小时内删除本 PDF 。 BIOadviews Java 微服务实战 本书由浅入深地讲解了微服务的相关技术,包括基础框架、服务框架和 监控部署三大部分,以实战为主、理论为辅,内窑革富,实用性强。 赵计刚/著 田 中国工信出版集团国主柔政毒品.~ 关于作者 赵计刚 现任网易高级 Java 开发工程师 。 毕业于晗 尔滨工业大学软件学院 。 2016年3月加入 51 信用卡,开始接触微服务架构,之后一直从事 做服务的开发与研究,学习与总结了不少微 服务架构相关的理论与实践经验 。 个人是开 源技术的拥噩,对新技术充满浓厚的兴趣, 尤真是微服务架构相关技术 。 Java微服务实战 赵计刚/著 弯子王苦也版社· Publishing House of Electronics Industry 北京 •BEi丑NG 内容简介 本书分为三部分:基础框架篇(第 l ~6 章)、服务框架篇(第 7~ l O 章)、监控部署篇(第 l l ~ 13 I;j:)' 由浅入深地训解了微服务的相关技术。基础框架篇从微服务架构的基本概念与技术逃型出发 , 详细介绍了 微服务基础框架 Spring Boot 、自 动化 API 文档生成工具 Swagger 、 动态数据源和缓存系统,并深入分析了 Spring Boot 启动过程的核心源码,这一部分是整本书的基础:服务框架篇详细介绍了服务注册与发现框架 Consu l 、热配置管理框架 Archaius 、服务降级容错框架 Hystrix ,以及服务通信框架 OkHttp 、 AsyncHttpC li ent 和 Retro旬 ,这一 部分是整本书的核心;监控部署篇详细介绍了 ELK 日志系统的实现、 Z ipkin 全链路追踪 系统的实现,最后介绍了持续集成与持续部署系统的实砚,这一部分是开发运维部分。 本书 的目标读者是 Java 技术 爱好者 、 Java 工程师、微服务架构 爱好者 ,希望本书能够帮助到你们 。 未经许可,不得以任何方式复制或抄袭本书之部分或全部内容 。 版权所有,侵权必究。 图书在版编目( CIP )数据 Java 微服务实战/ 赵计刚著 一北京:电子工业出版社 , 2017.11 ISBN 978-7-121-32840-4 [ ①J … II ①赵…田. ①JAVA 语言一程序设计 W ①TP312 .8 中国版本图书馆 CIP 数据核 字( 2017 〕第 244012 号 嘈 策划编辑付睿 责任编辑.牛勇 印 刷: 三河市良远印务有 限公司 装 订: 三河市良远印务有限公司 出版发行·电子工业出版社 北京市海淀区万寿路 173 信箱 开 本: 787 × 980 版 次. 2017 年 l l 月第 l 版 印 次. 2017 年 i l 月第 l 次印刷 定 价: 69 . 00 元 1/16 印张. 18.75 邮编: 100036 字数. 386 千字 凡所购买 电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系, 联系及邮购电话. ( 010) 88254888 , 88258888 。 质量投诉请发邮件至 zlts@phei.com.cn , 盗版侵权举报请发 邮件至 dbqq @phei.com.cn 。 本书咨询联系方式: 010-51260888-819 faq @phei.com.cn . 目 lj ~ “微服务架构”这个概念的提出己经有一段时间了,但是由于资料的匮乏以及实现的 复杂性 ,使得大部分企业望而却步。 我是幸运的,从毕业至今,一直在与微服务打交道,其间参与了大大小小多个微服务 项目的开发 ,是为数不 多 的有机会在实际生产环境中运用微服务架构的幸运儿 。 在使用微 服务架构的过程中,我深深地体会到了这种架构对于一个大中型企业的好处:快速的开发 与部署、轻量级的通信 机制、有针对性的水平扩展、高度的解祸, 等等 ,这加速 了一个项 目的法代,很好地实现了敏捷开发,正是企业所需要的。但是微服务架构的实现也是有 一 定的复杂性的 :服务拆分的边界怎么来定义:原本的单机事务在服务拆分之后变成了分布 式事务,这怎么处理:由于服务拆分了,服务之间的通信需要走网络,怎样尽可能地减少 网络通信的消耗:怎样防止服务雪崩;怎么梳理链路调用关系,怎么快速定位导致调用链 发生错误的服务;怎样监控服务的健康状态,等等,这都是使用了微服务架构后需要解决 的问题。本书结合我在实际使用微服务架构中积累的经验给出了其中大多数问题的解决方 案,可以为读者朋友提供一个参考。 不可否认的是,正如文章开头所讲的,国内关于微服务架构的开发学习资料与课程都 非常有限,这使得微服务架构在国内的推广并没有想象中那样火热。而且,国内的相关资 料大多数以理论为主或者没有实战基础。所以,当电子工业出版社博文视点的付睿老师提 议写 一本以实战为主的微服务书籍之后,我毫不犹豫地抓住了这个机会。本书以实战为主, 以理论为辅,真正给出了能在实际生产中使用的技术方案。由于篇幅限制以及以实战为主 的特点,本书不会介绍太多的理论(哪怕这个理论很重要〉,比如在介绍 Consu l 的时候, 本书不会详细介绍 Raft 一致性协议,但是会介绍与其相关的一些在使用中需要注意的问题, <Ill > Java 制服务实战 如果读者对相关问题有兴趣,可以查看相关的论文资料 。 本书的组织结构 本书从组织结构上来讲 ,分为三部分 : 基础框架篇(第 1 -6 章)、服务框架篇(第 7~ 10 章〉、监控部署篇(第 11 - 13 章〉。 第 1 章微服务概述 本章首先介绍了微服务架构的概念与优缺点,之后简略介绍了微服务中需要的各种组 件与常见的技术选型 。 第 2 章微服务基础框架 本章首先介绍了 Spring Boot 在微服务方面的优势,之后通过从零开始开发 一个 Spring Boot 项目来介绍 Spring Boot 的基本使用方法 ,使 没有使用过 Spring Boot 的同 学可以快速 入门 。 最后在 “ 再学一招”部分 ,介 绍了一个非常好用的 Maven 命令 : Maven 依赖树,该 命令是查看 SpringBoot-Starter 的依赖以及处理依赖冲突的利器 。 第 3 章微服务文档输出 本章首先介绍了自动 化文档输出工具 Swagger 的 概念 , 之后介绍了 Swagger 与 Spring Boot 的 集成以及 Swagger 的 常用注解。最后在“再学 一 招”部分,介绍了 一个很好用的消 除模板代码的框架 Lombok 的安装与使用方法 。 第 4 章微服务数据库 本章以 MySQL 为例, 首先介绍了在单数据源的情况下 , Spring Boot 与 MyBatis 的 集 成。之后使用 AbstractRoutingDataSource 实现了对多数据源情况的处理 , 并简要介绍了实 现多数据源的原理。最后在“再学一招 ” 部分,介绍了 MyBatis-Generator 的基本用法 。 第 5 章微服务缓存系统 本章首先介绍了常用的缓存技术的优缺点与选型方案,之后介绍了当使用 Redis 2.x 版 本时,使用 Spring Boot 集成 ShardJedis 实现客户端分片的方法。然后介绍了 Redis 3.x 集群 的搭建与使用 Spring Boot 集 成 JedisCluster 实现服务端集群的方法。最后简要分析了 JedisCluster 的源码 。 在本章的“再学 一 招 ” 部分,介绍了使用 GuavaCach巳 实现本地缓存 的方法 。 < IV > 前言 第6章 Spring Boot 启动源码解析 本 章 详细分析了 Spring Boot 启动过程的源码 , 掌握这 一 章对于后续章节的学习至关 重 要 。 在本 章 的“再学 一 招”部分 , 简要介绍了在开发过程 中 获取配置信息的 4 种 方法。 第 7 章微服务注册与发现 本 章首 先介绍了 Consul 的基本概念和功能 , 之后搭建了服务提供者和服务调用者两个 项目来实现使用 Consul 进行服务注 册 和服务发现 的 功能,最后介绍了使用 Con sul 与 SpringBoot-Actuator 实现服务健康检查 的 功能 。 在本章 的 “再学 一 招”部分 , 简要介绍了 Consul 自身提供 的几种健康检查 的方式及原理 。 第 8 章微服务配置管理 本 章 首先介绍了为什么 要 使用 Archaius 以及 Archaius 实现服务热配置 的 原理 , 之后展 示了使用 Consul-KV 实现配置中 心的 方式 以及结合 Archaius 实现配置动态获取的方式,最 后提供了 一种将 Archaius 配置信息与 Spring 的 Prope即Source 结合的方案。在本 章 的“再 学 一招”部分 , 笔者详细分析了使用 Archaius 构造动态属性源以及动态获取属性的 源码。 第 9 章微服务进程间通信 本 章首 先介绍了 三种服务通信框架 : OkHttp 、 AsyncHttpClient 和 Retrofit , 之后分别展 示了使用 三种框架进行服务通信的 代码编写方法 。 最后在本章 的 “再学 一 招”部分 , 详细 分析了使用 Retrofit 进行服务通信 的 核 心源码 。 第 10 章微服务降级窑错 本 章首 先详细介绍了为什么使用 Hystrix , Hystrix 的 工作原理 以及执行流程 , 之后展示 了在实际项目中如何使用 Hystrix 实现服务降级容错 , 最后展示了怎样结合 Turbine 来搭建 一个完整的 Hystrix 监控系统 。 在本章 的 “再学 一 招”部分 , 介绍了设置 Hystrix 配置参数 的两种方法以及最常使用的 11 个配置项 。 第 11 章微服务日志系统 本章首先详 细介绍了为什么使用 ELK 以及 ELK 最常用 的 两种架构 , 之后搭建了 ELK 缓冲系统 , 然后展示了怎样将项目中的日志发送 到 日志系统中,最后简单介绍了 Kibana 的 常见用法 。 在本 章 的“再学-招”部分 , 介绍了怎样使用 Elastic
《Java微服务实战》
计算机 >
Java >
微服务 >
文档预览
304 页
0 下载
528 浏览
0 评论
0 收藏
3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
本文档由 user 于 2021-02-28 15:59:55上传分享