前言
FOREWORD
为什么要学习本书
最近两年,微服务一词逐渐地进入了技术人员的视野,并已成为当下最火的技术名词之一。这里的微服务并不是指某一个技术或者某个服务,而是一种理念。通过此理念的使用,逐渐地发展出了一种流行的架构——微服务架构。
微服务架构是指由一系列职责单一的细粒度服务构成的分布式网状结构,其基本思想在于围绕着业务领域创建应用,这些应用可独立地进行开发和管理。简单来说,微服务架构的目的就是有效拆分应用,实现敏捷开发和部署。
微服务架构适合有一定的扩展复杂度,且有很大用户增量预期的应用。通常来说,比较适合新兴的互联网公司项目或有升级需求的传统企业应用。随着技术的不断发展,各种企业对微服务架构的使用需求将越来越多。
虽然使用微服务架构技术的市场需求在不断增加,但掌握相关技术的人员却很少。尤其当前市面上的相关资料、书籍并不多,且讲解Spring Boot+Spring Cloud+Docker技术的资料更是少之又少,这也在一定程度上制约了微服务架构技术的发展。
为了帮助更多的技术人员了解并掌握微服务架构技术的使用,本书以通俗易懂的语言、典型翔实的案例,对微服务架构技术的使用进行详细讲解。对于想快速学习微服务技术的人员,以及对Spring Boot、Spring Cloud和Docker有兴趣的人员来说,本书将是您很好的选择。
如何使用本书
本书适用于具有一定Java Web框架(如Spring框架)、Maven工具和Linux系统使用基础的技术人员,以及对微服务感兴趣的业务人员学习。对于想深入学习的非技术人员,建议先掌握Java框架技术、Maven工具以及Linux系统的使用。
本书在Spring Boot + Spring Cloud + Docker的基础上,详细讲解了微服务架构技术使用的相关知识。在编写时,作者力求将一些非常复杂、难以理解的思想和问题简单化,使读者能够轻松、快速地掌握这些知识点。
本书共10章,每章的内容如下。
·第1章讲解微服务及其相关的技术。主要包括微服务和微服务架构的概念、产生背景、微服务架构的优势与不足、如何搭建微服务架构,以及如何选择微服务架构技术。通过本章的学习,读者将对微服务及其相关概念有一定的了解,并熟识常用的微服务架构技术。
·第2章对Spring Boot的由来、特点、使用要求、入门程序以及工作机制进行详细讲解。通过本章的学习,读者可以体会到Spring Boot框架的方便和高效,并能了解Spring Boot的执行过程。
·第 3 章讲解如何使用 Spring Boot 与其他技术进行集成开发,内容包括 Spring Boot 与MyBatis框架的集成、与Redis的集成,以及与ActiveMQ的集成。通过本章的学习,读者将熟悉如何在实际开发中应用Spring Boot。
·第4章讲解微服务架构中的服务发现以及客户端负载均衡。服务发现是通过Spring Cloud Eureka实现的,而客户端负载均衡是通过Spring Cloud Ribbon实现的。
·第5章讲解微服务架构中的服务容错保护、API网关服务,以及分布式配置管理的使用知识,其中服务容错保护使用的是Spring Cloud Hystrix,API网关服务使用的是Spring Cloud Zuul,分布式配置管理使用的是Spring Cloud Config。学习完本章后,结合前面所学知识,读者将可以搭建一个比较完整的微服务架构。
·第6章讲解Docker入门的一些基础知识,内容包括Docker的概念和特点、安装要求和安装方式,以及运行机制。通过本章的学习,读者可以对Docker的概念及其体系架构有一个初步的了解,并能够掌握在Ubuntu系统上安装Docker的几种方式。
·第7章讲解Docker的基本使用及镜像管理的一些知识,内容涉及Dockerfile文件、Docker客户端的常用指令等。通过本章的学习,读者可以掌握Docker的基本使用,同时能够掌握Docker中的镜像管理。
·第8章讲解Docker中的网络与数据管理知识,内容包括Docker的默认网络和自定义网络管理、Docker Swarm 的集群、Docker 的数据存储,以及 Volumes 数据卷的管理。通过本章的学习,读者可以对Docker中的网络、数据管理以及Docker Swarm的基本知识有一定的了解,同时能够掌握Docker中自定义的网络管理和Volumes数据卷管理的具体使用方法。
·第9章讲解微服务项目的整合以及接口测试的相关知识,内容包括使用微服务架构搭建的一个商城管理系统,以及接口可视化工具Swagger-UI的使用。通过本章的学习,读者可以对微服务项目的使用有进一步的认识,熟悉Spring Boot和Spring Cloud相关组件的整合开发,同时还可以掌握接口测试工具Swagger-UI的简单使用。
·第10章讲解有关微服务部署的相关知识,内容涉及Docker Comopse编排工具、微服务与Docker的整合、微服务手动部署,以及使用Jenkins完成微服务的自动化部署等内容。通过本章的学习,读者可以掌握微服务与Docker的整合,同时能够掌握如何使用Jenkins完成微服务项目的自动化集成和部署。
在学习过程中,读者一定要亲自实践书中的案例代码,如果不能完全理解书中所讲的知识点,可以登录博学谷平台,通过平台中的教学视频进行辅助学习。另外,如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个地方,可以先往后学习。通常来讲,随着对后面知识的不断深入了解,前面看不懂的知识点一般就能理解了。如果读者在动手练习的过程中遇到问题,建议多思考,理清思路,认真分析问题发生的原因,并在问题解决后多总结。
本书采用基础知识+案例相结合的编写方式,通过基础知识的讲解与案例的巩固,可以使读者快速地掌握技能点。
致谢
本书的编写和整理工作由传智播客教育科技股份有限公司完成,其中主要的参与人员有吕春林、陈欢、韩永蒙、石荣新、杜宏、梁桐、王友军、冯佳等。全体人员在近一年的编写过程中,付出了很多辛勤的汗水,在此一并表示衷心的感谢。
意见反馈
尽管我们尽了最大的努力,但书中难免会有不妥之处,欢迎各界专家和读者朋友们来函给予宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或不认同之处,可以通过电子邮件(itcast_book@vip.sina.com)与我们取得联系。
传智播客.黑马程序员
2017年12月4日于北京