为什么要写这本书
在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据。传统的架构已经慢慢不能支撑互联网业务的发展,这时微服务架构便顺势而出。
最开始,国内很多公司都是基于阿里开源的 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。如果你遇到任何问题或者有其他宝贵意见,欢迎发送邮件至邮箱
[email protected],期待能够得到你们的真挚反馈。
致谢
首先要感谢 Spring Cloud 的各位开发人员,感谢你们开发出这样一个好用的框架。
感谢机械工业出版社华章公司的杨福川老师,是你在这半年多的时间中始终支持我的写作,正因为有你的鼓励和帮助,我才能顺利完成全部书稿。
感谢机械工业出版社华章公司的张锡鹏老师,是你在本书的审稿过程中给了我很多实用的建议,让我学习到了很多写作方面的技巧。
最后感谢家人的支持和理解,让我能够把全部精力投入到本书的写作中。谨以此书献给我最亲爱的家人,以及众多热爱 Spring Cloud 的朋友们!