本书从架构设计、应用开发和运维部署三个方面出发,对微服务架构设计的实施进行了全方位的阐述和深入实践,并结合生产实际讲解了Spring Cloud、Docker和Jenkins等工具的具体使用方法。书中通过一个互联网电商平台实例实现了高并发的微服务架构设计,并通过详细的开发和实施过程,演示了构建一个安全可靠、稳定高效并可持续扩展的系统平台的方法。
本书适合互联网应用开发设计人员参考学习。
本书以互联网平台的案例为导向,从架构设计、应用开发和运维部署三个方向介绍了微服务架构设计的方法。
前 言
简单地说,微服务就是一种使用轻量级架构设计的组件化的小应用,这种小应用只关注一定范围的业务功能,往往只负责做好一件事情。通过很多这样的小应用,利用一种高效而灵活的管理机制,可以组成一个功能全面且业务丰富的大型平台。这种管理机制包括服务的注册与发现、服务的路由与负载均衡管理、服务之间简单而快捷的通信等功能。
轻量级的微服务架构设计方法,是在竞争激烈的互联网环境中诞生并且发展起来的,非常适合互联网应用快速迭代和规模化扩张的特点。当风靡一时的SOA架构因为其重量级的设计方法,并不能适应业务快速变更和高速发展的要求时,微服务架构轻量级的设计风格的出现无疑是软件工程设计的救星,它给软件工程设计重新注入了一股新鲜活跃的血液。
互联网经济激烈竞争的特性,致使业务需求经常发生变化,这就要求技术开发必须具有非常快速的响应能力,以快速抢占市场先机,体现一种“高手过招、唯快不破”的风格。而且,产品一经推出,必须经常进行调整和迭代,以使其始终都能处于“出类拔萃、鹤立鸡群”的地位。更为重要的一面是互联网经济巨大的市场潜力,必然会触发应用产品走上规模化扩张的道路,这种扩张有时甚至是爆炸性的,这对产品的性能和稳定性都提出了前所未有的高要求。
对于软件设计和开发,唯有轻装上阵才能时刻充满活力,始终具有冲锋陷阵的干劲和强壮的生命力。微服务架构轻量级的设计观念及其渐进式的开发特点,正是体现了这种与时俱进的先进设计思想。
在微服务架构设计实施的实践中,Netflix OSS是大家所公认的最早使用微服务架构设计的典范,Spring团队在其开源组件的基础上,组建了一个基于Spring Boot 开发框架的Spring Cloud工具套件。Spring Cloud工具套件为开发者提供了一个完整而配套的工具组件,使微服务架构的实施和开发变得更加普通和容易。Spring Cloud工具套件提供了包括但不限于服务注册管理、智能路由、负载均衡服务、熔断容错和服务降级机制、集中配置管理、服务监控与跟踪等功能组件和服务。
本书将详细介绍如何使用Spring Cloud工具套件来设计和开发微服务,并且不只是停留在表面上对Spring Cloud各个工具组件本身的使用说明和介绍,而是从架构设计出发,说明了如何更好地将微服务架构的设计理念应用于生产实践中,并在实际应用中加深对Spring Cloud工具套件的理解和掌握的程度。同时还将介绍怎么使用Docker和Jenkins等工具来进行微服务的部署和发布,并通过构建一系列高可用性的服务器架构设计,阐述了构建一个稳定、可靠并且能够适应规模化发展的应用平台的方法。
本书将从架构设计、应用开发和运维部署三个方面出发,对微服务架构设计的实施进行全方位的介绍和详细说明,在这一过程中将使用一个互联网平台的实例展开分析和深入实践。
通过对本书的系统学习,可以让读者将微服务架构的设计方法快速应用于生产实践中,为开发团队和企业提供坚不可摧的竞争力。
让我们一起努力,共同探索吧!让先进的技术率先成为我们先进的生产力。
本书的读者对象
本书的读者对象为广大的Java开发者、系统架构师和系统运维人员。本书特别适合使用过Spring开源框架或具有Spring框架基础知识的广大用户群体。
本书章节组成
本书由三部分组成,各部分及其章节的结构如下所示。
第一部分 架构篇
第1章 微服务架构与Spring Cloud
第2章 微服务架构最佳设计
第3章 电商平台微服务设计实例
第二部分 开发篇
第4章 开发工具选用及Spring Boot基础
第5章 电商平台微服务工程设计
第6章 微服务治理基础服务开发
第7章 Rest API微服务开发
第8章 Web UI微服务开发
第9章 电商平台移动商城开发
第10章 商家管理后台与SSO设计
第11章 平台管理后台开发
第三部分 运维篇
第12章 服务器架构设计与Docker使用
第13章 数据库集群设计与高可用读写分离实施
第14章 分布式文件系统等基础设施安装与配置
第15章 使用自动化构建工具Jenkins实现CI/CD
实例代码
本书的实例代码存放在开源中国的码云代码仓库之中,可以通过下列链接打开各个项目工程下载或使用Git检出:
https://gitee.com/chenshaojian/projects
勘误与反馈
读者如有任何问题,可以通过如下链接发起话题与作者交流。本书在出版印刷之后,有需要勘误的地方也会首先在这里发布:
https://gitee.com/chenshaojian/SpringCloud/issues
致谢
非常感谢长期给予我支持和鼓励的朋友们,因为有了你们的支持和鼓励,才让我感到无比的幸福和惬意。还要感谢曾经与我一起进行过微服务开发的小伙伴们,令人欣慰的是,我已经兑现了之前的承诺,将微服务架构设计的经验汇编成书。最后要感谢家人对我的支持,在本书写作的过程中,我几乎将所有的空闲时间都花费在写作之中,而忽略了对你们的陪伴,对此我深感歉意。
如果书中有不对的地方或者任何纰漏,还敬请大家不吝赐教,我将感激不尽。
笔 者