前言

为什么要写这本书

在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据。传统的架构已经慢慢不能支撑互联网业务的发展,这时微服务架构便顺势而出。

最开始,国内很多公司都是基于阿里开源的Dubbo框架来构建微服务的,由于阿里内部的原因,Dubbo已经几年没进行维护了,不过在2018年,阿里宣布重新开始维护。反观Spring Cloud,其在国外发展得很好,但在国内,由于Dubbo的存在导致Spring Cloud鲜为人知。不过从2017年开始,Spring Cloud在国内的普及度逐渐变高,很多中小型互联网公司都开始拥抱Spring Cloud。

Spring Cloud提供一整套微服务的解决方案,基于Spring Boot可实现快速集成,且开发效率很高,堪称中小型互联网公司微服务开发的福音。而且Spring Cloud发布新功能的频率非常高,目前仅大版本就有很多个,同时还有庞大的社区支持,照这样的发展势头,我相信未来几年国内互联网公司的公布式系统开发一定是Spring Cloud的天下。

我一直在使用Spring Boot、Spring Data等一系列框架来进行开发,作为一名Spring Cloud的忠实粉丝,自然希望能够有更多开发者参与进来,于是自己坚持写Spring Cloud相关的文章,并且将文章涉及的代码整理好放在GitHub上面进行分享。在这个过程中我得到了很多开发者的关注,他们向我咨询一些微服务方面的问题,我也会在研究和解决了一些问题后,通过文章分享给各位开发者。在有幸结识了华章的杨老师后,我决定将这些文章整理成书,目的是想推广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的朋友们!