前言

前言

当前互联网技术正在飞速发展,各种技术框架层出不穷,让人眼花缭乱。我们在选择框架和进行技术选型时会有一些考量,主要包括社区规模、是否开源、是否比较成熟以及大公司对其评价等。

我从事开发工作多年,亦见证了互联网技术的发展:从JSP/ASP/PHP时代到SSH/SSM的流行,从模板引擎到前后端分离;从单一的技术架构到分布式的系统架构,再到如今随处可见的微服务思想。随着岁月的流逝,时代的变迁,互联网技术发展迅猛。

作为公司的开发经理和架构师,我需要不断地优化系统架构。我平时有逛技术论坛的习惯,一次偶然的机会,从CSDN博客上看到了一篇介绍Spring Boot的文章,好奇地点进去阅读,随即就被它吸引,心中顿时汹涌澎湃,恨不得马上编写示例来体验其强大之处。

Spring Boot的优势是不言而喻的,它简化了Spring MVC架构,将其核心代码封装起来,并且基于注解,摒弃了烦琐的XML,大大增强了代码的可读性及可维护性,提升了开发效率。此外,Spring Boot集成了Tomcat,使项目部署变得容易,不需要单独部署Tomcat,使用Java命令即可完成项目的发布。

然而,Spring Boot不是分布式架构,随着我公司项目的用户量不断增加,并发数不断增大,基于Spring Boot的系统架构遇到了瓶颈。无巧不成书,这时微服务思想逐渐流行起来,无论是技术论坛还是程序员间的谈话,都在讨论微服务。国内著名的互联网企业阿里巴巴早在2012年就推出了Dubbo框架,但由于种种原因,Dubbo停止了维护,直到2017年,Dubbo官方才重新开始维护。就在这时,Spring Cloud横空出世,它基于Spring Boot,同时集成了市面上比较成熟的微服务组件,形成了一套完整的微服务解决方案。

Spring Cloud的出现为广大开发者带来了福音。我发现,Spring Cloud的好处虽然多,但国内的系统教程可谓凤毛麟角,实战类课程更是难求,本书就是在这种大环境下编写的。我认为,实战即学习,只讲理论,不重实战,是不可取的。

本书结构

本书共分四部分,从基础到实战,讲解了基于Spring Cloud的常用组件。

第一部分(基础篇):第1~4章。这部分主要讲解了Spring Boot的基本用法及Spring Cloud的Hello World示例,带领读者先目睹Spring Cloud的风采,为后续学习打好基础。

第二部分(实战篇):第5~10章。本书的编写初衷是以实战为导向,因此这一部分占比最重,其中全方位讲解了实战项目的开发流程。

第三部分(高级篇):第11~13章。第二部分的内容已经是一套完整的微服务架构,但是在实际的生产中,尤其对于并发要求较高的系统来说是远远不够的,因此这部分集成了微服务的高级用法。

第四部分(部署篇):第14~15章。系统最终会发布到网络上,传统的系统发布由人工上传并启动应用,而这在微服务架构中是不可取的,因为一套微服务架构可能由很多服务构成,人工启动应用的工作量会非常巨大,所以有必要让读者了解分布式系统的部署细节。

致谢

首先,要感谢我的父母,在我决定写书时,他们给了我极大的鼓励和支持。我也要感谢我的妻子张敏女士,她为了让我能够专心写书,承担起了带孩子和家务的重担。

其次,我要感谢王军花老师。我工作多年,习惯将自己的经验以博客的形式分享给广大网友,也通过知识付费的途径获得了一些回报。一个偶然的机会,通过朋友的介绍,认识了王军花老师,她仔细阅读了我博客上的技术文章,经过沟通,觉得我可以出一本关于Spring Cloud实战的书。能够拥有一本属于自己的技术书一直是我的梦想,王军花老师在我写作期间给了我很多建议,并和我讨论内容和细节,经过不断地优化和改进,本书才得以顺利出版。

我还要感谢中国石油规划总院的骆科东博士,当我找到他,希望他为我的书写序的时候,他很快就答应了,也仔细阅读了本书的原稿,给我提供了很多宝贵的意见。

最后,我要感谢我的朋友(程斌、李云龙等),他们是这本书的第一批读者,给我提出了很多宝贵意见,没有他们,这本书也很难出版。

另外,我还要感谢正在阅读本书的你,感谢你在百忙之中翻阅本书,也感谢你对我的支持,你的支持是我成长的动力。未来,我会努力提升技术水平及写作水平,为你创作出更加优质的作品,谢谢!

其他

谨以此书献给那些想研究微服务、希望向架构师方向发展的开发者,我的初衷是希望读完本书的读者能够马上投入到实际项目中,少走弯路。

本书的配套资料1均已上传到网络上,详见https://github.com/lynnlovemin/SpringCloudActivity。如果你有任何疑问,均可发送邮件到lynnlovemin@foxmail.com

1本书配套的电子资源可在图灵社区(iTuring.cn)的本书主页中免费注册下载。

说明:本书代码所采用的开发工具是IntelliJ IDEA,读者可以到其官网下载,地址是http://www.jetbrains.com/idea/

目录

  • 前言
  • 第一部分 基础篇
  • 第 1 章 微服务概述
  • 第 2 章 Spring Boot基础
  • 第 3 章 Spring Boot核心原理
  • 第 4 章 Spring Cloud概述
  • 第二部分 实战篇
  • 第 5 章 项目准备阶段
  • 第 6 章 公共模块封装
  • 第 7 章 注册中心:Spring Cloud Netflix Eureka
  • 第 8 章 配置中心:Spring Cloud Config
  • 第 9 章 服务网关:Spring Cloud Gateway
  • 第 10 章 功能开发
  • 第三部分 高级篇
  • 第 11 章 服务间通信
  • 第 12 章 服务链路追踪:Spring Cloud Sleuth
  • 第 13 章 服务治理
  • 第四部分 部署篇
  • 第 14 章 系统发布上线
  • 第 15 章 使用Kubernetes部署分布式集群
  • 附录 A 如何编写优雅的Java代码
  • 附录 B  IDEA插件之Alibaba Cloud Toolkit
  • 作者简介