前言
在这个万物互联的时代,越来越多的人和物成为互联网上的节点,不断扩充着互联网这张大网的边界。节点即价值,更多的节点意味着更大的价值。如何去承载更多的节点成为IT从业人士必须要解决的问题。本书重点介绍基于Spring Cloud的分布式应用开发。全书以票务网站大觅网项目的应用场景为例,通过解决方案形式的内容安排引领读者学习分布式架构开发。各章具体内容安排如下。
第1章:微服务架构与项目设计。详细分析大觅网的业务场景并讲解微服务架构相关内容。主要内容包括如何依据微服务架构的设计原则设计大觅网项目的业务架构、应用架构、技术架构、部署架构以及数据库架构,在介绍微服务架构时,提出 Spring Cloud解决方案。
第2章:Spring Cloud初体验。详细讲解Spring Cloud微服务架构。首先介绍Spring Cloud框架的概念、和Spring Boot框架的关系以及Spring Cloud的体系架构,接下来介绍Spring Cloud的三个重要组件的使用,分别为使用Eureka实现注册中心及注册服务、使用Feign实现声明式REST调用、使用Hystrix实现微服务的容错处理,最后介绍如何基于微服务原则对大觅网进行架构搭建。
第3章:虚拟化技术 Docker+Jenkins。详细讲解分布式开发中经常应用的虚拟化Docker技术和实现自动发布的Jenkins技术。首先介绍Docker的基础概念、实现原理、操作命令,接下来介绍如何基于Docker技术实现大觅网开发和测试环境的快速搭建,最后基于Docker Compose+Jenkins+Git讲解如何实现大觅网项目在开发、测试、线上环境中的自动发布。
第4章:分布式日志处理。主要讲解如何在分布式项目中跟踪子项目间的请求、如何收集各子项目的日志。首先介绍如何使用Spring Cloud组件Sleuth实现微服务跟踪,接下来介绍如何使用ELK+Kafka实现微服务系统的日志收集。
第5章:分布式业务实现。主要讲解分布式开发下两个常见问题的解决方案,即分布式事务问题和分布式线程安全问题。以企业中常用的消息中间件 RabbitMQ 为例讲解如何使用消息中间件RabbitMQ实现分布式事务,以及如何使用Redis-setnx实现分布式系统下的线程同步。
第6章:分布式部署实现。主要讲解Spring Cloud架构的微服务项目如何部署,包括使用Spring Cloud Ribbon实现服务负载均衡、使用Spring Cloud Zuul实现服务统一网关、使用Spring Cloud Config实现分布式统一配置。
第7章:分布式数据存储。主要讲解如何使用分布式搜索引擎 Elasticsearch 实现商品全文检索。首先介绍 Elasticsearch 的相关概念、运行原理、语法,以及如何在大觅网中进行 Elasticsearch 的集成,接下来介绍 Mycat 的概念、语法,以及使用 Mycat实现大觅网订单库的水平分库。
第8章:集成测试。主要介绍如何对已开发完毕的分布式项目进行系统性的测试,包括如何使用JMeter进行压力测试以及如何使用Sonar进行代码规范测试。
除了以上有关Spring Cloud微服务架构解决方案的内容外,本书还涵盖了敏捷项目管理框架Scrum、分布式版本管理Git、代码检测工具Sonar等相关内容。
本书由课工场大数据开发教研团队组织编写,参与编写的还有陈昊、王社、胡艳蓉、邓小飞、黄兴等院校老师。由于时间仓促、书中不足或疏漏之处在所难免,殷切希望广大读者批评指正。