SpringCloud微服务:全栈技术与案例解析 - Go语言中文社区

SpringCloud微服务:全栈技术与案例解析


网站

更多书籍点击进入>> CiCi岛

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

封页

封页

编辑推荐

(1)作者是Java工程师,在Spring Cloud微服务方面积累了丰富的经验 (2)知识体系全面,详细讲解Spring Cloud微服务的全栈技术和扩展知识 (3)以实战为导向,通过代码示例讲解Spring Cloud工具的使用,以及微服务的架构与设计 (4)适合零基础入门,从新人成长为微服务架构师

内容简介

本书内容共18章,共分为4个部分。第1部分为准备篇,准备篇当中会对微服务以及SpringCloud做一个整体的介绍,同时将SpringCloud的基础内容进行讲解,比如SpringBoot。第2部分为基础篇,基础篇当中会对SpringCloud的几大常用模块进行讲解和简单使用。第3部分为实战篇,实战篇当中会通过对在微服务架构中普遍遇到的问题进行实战解决讲解。第4部分为高级篇,高级篇当中就是对SpringCloud进行一些扩展性的使用,比如API网关怎么限流,怎么做灰度发布等。

作者简介

作者简介 尹吉欢(YinJiHuan) Java开发工程师,在Spring Cloud和微服务方面有丰富的经验。喜欢写代码,研究技术,座右铭是“简单的技术爱好者”。 一直在上海从事Java服务端开发工作,前端也略有涉及。曾就职于鲁班软件,一起唱等互联网公司,目前就职于房产大数据公司房价网,担任技术经理,负责公司产品的开发和管理工作。 2016年创办了自己的技术网站‘猿天地’,主要提供Java相关技术的分享和视频课程。主要关注分布式、高并发、后端服务,目前的重心是微服务。

目 录

目  录?Contents
前言
第一部分 准备篇
第1章 Spring Cloud与微服务概述 2
1.1 传统的单体应用 2
1.1.1 改进单体应用的架构 2
1.1.2 向微服务靠拢 3
1.2 什么是微服务 4
1.2.1 使用微服务架构的优势和劣势 4
1.2.2 重构前的准备工作 5
1.3 什么是Spring Cloud 5
1.3.1 Spring Cloud模块介绍 5
1.3.2 Spring Cloud版本介绍 6
1.4 本章小结 7
第2章 实战前的准备工作 8
2.1 开发环境的准备 8
2.2 Spring Boot入门 9
2.2.1 Spring Boot简介 9
2.2.2 搭建Spring Boot项目 9
2.2.3 编写第一个REST接口 11
2.2.4 读取配置文件 11
2.2.5 profiles多环境配置 13
2.2.6 热部署 13
2.2.7 actuator监控 15
2.2.8 统一异常处理 16
2.2.9 异步执行 18
2.2.10 随机端口 21
2.3 本章小结 23
第二部分 基础篇
第3章 Eureka注册中心 26
3.1 Eureka 26
3.2 使用Eureka编写注册中心服务 27
3.3 编写服务提供者 29
3.3.1 创建项目注册到Eureka 29
3.3.2 编写提供接口 30
3.4 编写服务消费者 31
3.4.1 直接调用接口 31
3.4.2 通过Eureka来消费接口 32
3.5 开启Eureka认证 33
3.6 Eureka高可用搭建 33
3.6.1 高可用原理 33
3.6.2 搭建步骤 34
3.7 常用配置讲解 35
3.7.1 关闭自我保护 35
3.7.2 自定义Eureka的Instance ID 35
3.7.3 自定义实例跳转链接 36
3.7.4 快速移除已经失效的服务信息 37
3.8 扩展使用 38
3.8.1 Eureka REST API 38
3.8.2 元数据使用 40
3.8.3 EurekaClient使用 41
3.8.4 健康检查 43
3.8.5 服务上下线监控 45
3.9 本章小结 46
第4章 客户端负载均衡Ribbon 47
4.1 Ribbon 47
4.1.1 Ribbon模块 47
4.1.2 Ribbon使用 48
4.2 RestTemplate结合Ribbon使用 49
4.2.1 使用RestTemplate与整合Ribbon 49
4.2.2 RestTemplate负载均衡示例 52
4.2.3 @LoadBalanced注解原理 53
4.2.4 Ribbon API使用 57
4.2.5 Ribbon饥饿加载 58
4.3 负载均衡策略介绍 59
4.4 自定义负载策略 60
4.5 配置详解 61
4.5.1 常用配置 61
4.5.2 代码配置Ribbon 62
4.6 重试机制 63
4.7 本章小结 64
第5章 声明式REST客户端Feign 65
5.1 使用Feign调用服务接口 65
5.1.1 在Spring Cloud中集成Feign 66
5.1.2 使用Feign调用接口 66
5.2 自定义Feign的配置 67
5.2.1 日志配置 67
5.2.2 契约配置 69
5.2.3 Basic认证配置 69
5.2.4 超时时间配置 70
5.2.5 客户端组件配置 71
5.2.6 GZIP压缩配置 72
5.2.7 编码器解码器配置 72
5.3 脱离Spring Cloud 使用Feign 73
5.3.1 原生注解方式 73
5.3.2 构建Feign对象 74
5.3.3 其他配置 75
5.4 本章小结 76
第6章 Hystrix 服务容错处理 77
6.1 Hystrix 77
6.1.1 Hystrix的简单使用 77
6.1.2 回退支持 78
6.1.3 信号量策略配置 79
6.1.4 线程隔离策略配置 79
6.1.5 结果缓存 80
6.1.6 缓存清除 81
6.1.7 合并请求 83
6.2 在Spring Cloud中使用Hystrix 84
6.2.1 简单使用 84
6.2.2 配置详解 85
6.2.3 Feign整合Hystrix服务容错 88
6.2.4 Feign中禁用Hystrix 90
6.3 Hystrix监控 91
6.4 整合Dashboard查看监控数据 92
6.5 Turbine聚合集群数据 94
6.5.1 Turbine使用 94
6.5.2 context-path导致监控失败 95
6.6 本章小结 95
第7章 API网关 96
7.1 Zuul 简介 96
7.2 使用Zuul构建微服务网关 97
7.2.1 简单使用 97
7.2.2 集成Eureka 98
7.3 Zuul路由配置 98
7.4 Zuul过滤器讲解 99
7.4.1 过滤器类型 100
7.4.2 请求生命周期 100
7.4.3 使用过滤器 101
7.4.4 过滤器禁用 103
7.4.5 过滤器中传递数据 103
7.4.6 过滤器拦截请求 104
7.4.7 过滤器中异常处理 106
7.5 Zuul容错和回退 108
7.5.1 容错机制 108
7.5.2 回退机制 109
7.6 Zuul高可用 111
7.7 本章小结 111
第三部分 实战篇
第8章 分布式配置管理 114
8.1 自研配置管理框架Smconf简介 114
8.2 Smconf工作原理 115
8.3 Smconf 部署 116
8.3.1 Mongodb安装 116
8.3.2 Zookeeper安装 117
8.3.3 Smconf Server部署 118
8.4 项目中集成Smconf 119
8.4.1 集成Smconf 119
8.4.2 使用Smconf 120
8.4.3 配置更新回调 121
8.5 Smconf详细使用 122
8.5.1 源码编译问题 122
8.5.2 后台账号管理 122
8.5.3 REST API 123
8.6 Smconf源码解析 125
8.6.1 Client启动 125
8.6.2 启动加载配置 127
8.6.3 配置修改推送原理 128
8.7 本章小结 129
第9章 Sleuth服务跟踪 130
9.1 Spring Cloud集成Sleuth 130
9.2 整合Logstash 131
9.2.1 ELK简介 131
9.2.2 输出JSON格式日志 131
9.3 整合Zipkin 133
9.3.1 创建Zipkin数据收集服务 133
9.3.2 项目集成Zipkin发送调用链数据 134
9.3

前 言

Preface?前  言为什么要写这本书在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据。传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服务架构顺势而出。
最开始国内很多公司都是基于阿里开源的Dubbo框架来构建微服务的,由于阿里内部的原因,Dubbo已经几年没进行维护了,不过今年(2018年)又宣布重新开始维护了。反观Spring Cloud,其在国外发展得很好,但在国内,由于Dubbo导致其鲜为人知。不过从2017年开始,Spring Cloud在国内的普及度越来越高了,很多中小型互联网公司都开始拥抱Spring Cloud。
Spring Cloud拥有一整套微服务的解决方案,基于Spring Boot可实现快速集成,且开发效率很高,故其堪称中小型互联网公司的福音。而且Spring Cloud发布新功能的频率非常高,目前仅是大版本就有很多个,同时还有庞大的社区支持,照这样的发展势头,我相信未来几年国内一定是Spring Cloud的天下。
我一直在使用Spring Boot、Spring Data等一系列框架来进行开发,作为一名Spring的忠实粉丝,自然希望能够有更多开发者参与进来,于是自己坚持写Spring Cloud相关的文章,并且将文章涉及的代码整理好了放在GitHub上面进行分享。在这个过程中我得到了很多开发者朋友的关注,他们向我咨询一些微服务方面的问题,我也会自己研究和解决一些问题,然后通过文章的形式分享给各位开发者朋友。我写本书的一个目的是想进一步推广Spring Cloud在国内的使用和发展,分享自己在微服务领域的一些小小的经验。
后来有幸结识了杨福川老师,在杨老师的邀请下我决定出一本与Spring Cloud微服务开发相关的书籍。
读者对象Java开发工程师Spring Cloud用户和爱好者微服务爱好者本书的读者对象主要是Java开发人员,特别是工作1~3年的开发人员,这个阶段的开发人员资历尚浅,正需要一些实用的技术和经验来提升自己,Spring Cloud正是一门符合提升要求的技术。因为它现在正在快速发展中,越来越多的企业开始使用Spring Cloud。相信在不久的将来,Spring Cloud将会成为Java开发人员面试的标配。
本书内容本书主打的是与微服务相关的实战体系。第一部分准备篇,可帮助各位读者了解微服务以及Spring Cloud的概念。第二部分基础篇会对Spring Cloud中常用的模块进行详细讲解。第三部分实战篇开始实战性质的内容讲解,包括选择配置中心、自研发配置中心、分布式跟踪、微服务安全认证、Spring Boot Admin管理微服务、快速生成API文档等实用内容。
最后一部分高级篇也是难度比较大的一部分,主要内容如下:
对Zuul进行扩展,即对认证、限流、降级、灰度发布等内容进行讲解。
讲解缓存框架的使用,解决缓存穿透、缓存雪崩等问题。
数据存储的选型,比如对Mysql、Mongodb、ElasticSearch的使用进行讲解。
分布式事务的解决方案,重点是利用消息队列开发可靠性消息服务来实现数据的最终一致性。
讲解分布式任务调度框架Elastic Job。
讲解分库分表的解决方案Sharding JDBC。
勘误和支持由于作者的水平有限,书中难免会出现一些不准确的地方,恳请读者批评指正。为此,特意贴出本书源码地址https://github.com/yinjihuan/spring-cloud。如果你遇到任何问题或者有其他宝贵意见,欢迎发送邮件至邮箱jihuan900@126.com,期待能够得到你们的真挚反馈。
致谢首先要感谢Spring Cloud的各位开发人员,感谢你们开发出这样一个好用的框架。
感谢机械工业出版社华章公司的杨福川老师,是你在这半年多的时间中始终支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
感谢机械工业出版社华章公司的张锡鹏老师,是你在本书的审稿过程中给了我很多实用的建议,让我学习到了很多写作方面的技巧。
最后感谢家人的支持和理解,让我可以把精力全部投入到本书的写作中。
谨以此书献给我最亲爱的家人,以及众多热爱Spring Cloud的朋友们!

媒体评论

Spring Cloud是开发分布式系统的“全家桶”,它实现了很多分布式应用中的“套路”。目前Spring Cloud正被越来越多的企业用于生产。本书知识体系非常全面,涵盖了微服务、Spring Cloud、分布式事务、缓存、存储等话题,让读者能够快速上手构建自己的分布式系统,值得一读。

 

——《Spring Cloud与Docker微服务架构实战》作者 周立

 

Spring Cloud 对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用 Spring Cloud 一站式解决方案能在企业从容应对业务发展的同时大大减少开发成本。本书详细介绍了 Spring Cloud 各模块的使用,并且对 Spring Cloud 没有涉及的安全认证、 服务限流、一致性事务等解决方案进行了详细讲解,我相信开发者在读完本书后会快速掌握 Spring Cloud 的相关知识 。

 

—— 海科融通研发中心副总监  张强(纯洁的微笑)

 

架构的演进永无止境。2000年WebService出现后,SOA被誉为下一代Web服务的基础架构,已经成为计算机信息领域的一个新的发展方向。SOA经过十几年的发展,逐渐趋于成熟。微服务架构这一术语在2012年横空出世,用于描述一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。每个小型服务都运行在自己的进程中。这些服务围绕业务、功能进行构建,并通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。

容器及其相关技术的快速发展加速了微服务架构的成熟和普及,同时也涌现出一批新的微服务落地实施的解决方案,Spring Cloud便是其中的佼佼者。本书内容全面详尽,文字浅显易懂。如果你想快速学习和实战Spring Cloud,本书是一个不错的选择。

 

—— 红瓦科技CTO 刘夕波

 

认真拜读了本书,行文流畅,由浅入深。不仅介绍了分布式开发的市场布局,更是对Spring Cloud进行了一次全方位的实践与对话。本书结合作者多年的开发经验和项目管理经验,为读者徐徐展开了一幅优雅的技术画卷。

 

—— 中科韬睿技术总监、《轻松搞定Extjs》《Android自定义组件开发详解》作者 李赞红

 

本书很好地将微服务中的重要话题Spring Cloud与其他开源组件融合起来。这其中也包括了Elastic-Job和Sharding-JDBC,作为这两款开源产品的作者之一,我很高兴地看到它们已逐渐走进技术人员的视野中。希望读者通过阅读本书,可以快速熟悉当今微服务技术栈的整体结构,并提升技术选型的能力。

—— *金融数据研发负责人 张亮

 

微服务日趋流行,随着部署数量的不断增长,如何管理如此众多的微服务就成为一个亟待解决的问题。本书根植于项目中的实践经验,很多代码都是作者在实际项目中的提炼,并且以通俗易懂的方式描述了Spring Cloud管理微服务的方法。读者通过阅读本书,并尝试着亲自试验,定能获得累累的收获。

—— 房价网CTO 虞继恩

 

本书以作者真正的线上实战示例为基础,详细介绍了其对Spring Cloud的理解和应用。Spring Cloud虽然被称为微服务的“全家桶”方案,但在实际使用时,我们依然会面临各种问题需要去解决和扩展。本书的可贵之处在于,作者在讲解Spring Cloud自身内容的同时也深入地分享了一些实战中的问题、解决思路以及扩展内容,这些都是非常珍贵的实战经验,所以我推荐正在使用Spring Cloud的朋友们阅读本书。

 

——spring4all社区发起人、《Spring Cloud微服务实战》作者 翟永超

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ckwer2008/article/details/84797821
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢