写在前面
微服务是当下炙手可热的一个话题,那么你对微服务了解有多少呢?通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。
举个小例子
最初需求
几年前,小明和小皮一起创业做网上超市。小明负责程序开发,小皮负责其他事宜。当时互联网还不发达,网上超市还是蓝海。只要功能实现了就能随便赚钱。所以他们的需求很简单,只需要一个网站挂在公网,用户能够在这个网站上浏览商品、购买商品;另外还需一个管理后台,可以管理商品、用户、以及订单数据。
整理一下功能清单:
网站
- 用户注册、登录功能
- 商品展示
- 下单
管理后台
- 用户管理
- 商品管理
- 订单管理
由于需求简单,小明左手右手一个慢动作,网站就做好了。管理后台出于安全考虑,不和网站做在一起,小明右手左手慢动作重播,管理网站也做好了。总体架构图如下:
小明挥一挥手,找了家云服务部署上去,网站就上线了。上线后好评如潮,深受各类肥宅喜爱。小明小皮美滋滋地开始躺着收钱。
随着时间的发展,以及时代经济的进步,大家都可以料想一下结果。那么重点来了:
Spring Cloud与Docker高并发微服务架构设计实施
第一部分架构篇
1微服务架构与Spring Cloud
- 1.1 微服务概念的由来
- 1.2 微服务的定义
- 1.3微服务架构与整体式架构的区别
- 1.4 微服务架构与SOA的比较.
- 1.5为什么 要使用微服务架构.
- 1.6为实施微服务架构做好准备
- 1.7为什 么要使用Spring
- 1.8 Spring Cloud组件介绍
- 1.9 Spring Cloud的版本说明
- 1.10 小结
2微服务架构最佳设计
2.1合理划分微服务
2.2微服务治理
2.3 Rest API微服务设计
2.4 Web UI微服务设计
2.5微服务之间调用规则设计
2.6数据最终一致性设计
2.7分布式集群架构设计
2.8微服务 运行环境安全设计
2.9小结
3电商平台微服务设计实例
- 3.1电商平台 总体设
- 3.2电商平 台业务模型设计
- 3.3创建 Rest API微服务
- 3.4创建Web UI微服务
- 3.5电商平台微服务体系结构
- 3.6小结
第二部分开发篇
4开发工具选用及Spring Boot基础
- 4.1开发工具选择
- 4.2开发环境配置
- 4.3创建 Spring Boot工程.
- 4.4使用JPA
- 4.5使用 Thymeleaf
- 4.6运行与部署
- 4.7小结
5电商平台微服务工程设计
- 5.1微服务工程结构
- 5.2电商平台微服务工程组建
- 5.3数据库选型
- 5.4微服务工程创建步骤
- 5.5 项目基本配置
- 5.6创建模块
- 5.7小结
6微服务治理基础服务开发
- 6.1注册管理中心
- 6.2配置管理中心
- 6.3微服务 监控中心
- 6.4服务跟踪分 析中心
- 6.5 日志分析平台
- 6.6小结
7 Rest API微服务开发
- 7.1领域业务开发
- 7.2 Rest API应用开发
- 7.3使用消息处理事件
- 7.4小结
8 Web UI微服务开发
- 8.1高并发接 口调用分层设计
- 8.2通过 FeignClient调用Rest API
- 8.3使用Hystrix断路器
- 8.4使用非阻塞 异步编程方法
- 8.5 Web 应用开发
- 8.6开发环境的热部署设置
- 8.7使用分布式文件系统
- 8.8小结
9电商平台移动商城开发
- 9.1移动商城首页设计
- 9.2使用负载均衡的导航设计
- 9.3按分类查询设计
- 9.4商品详情页设计
- 9.5 购买下单实现
- 9.6 用户登录与账户切换设计
- 9.7订单查询设计
- 9.8集成测试
- 9.9小结
10商家管理后台与SSO设计
- 10.1商家权限管理体系设计及开发
- 10.2商家管理微服务开发
- 10.3SSO设计
- 10.4 SSO客户端设计
- 10.5小结
11平台管理后台开发
- 11.1平台管理后台领域设计
- 11.2平台管理后台访问控制设计
- 11.3商家的注册设计
- 11.4商家菜单体系管理开发
- 11.5 商家角色管理开发
- 11.6 小结
第三部分运维篇
12服务器架构设计与Docker使用
- 12.1服务器组建
- 12.2安全的服务器架构设计
- 12.3服务器资源分配
- 12.4 CentOS 安装
- 12.5Docker和docker- compose安装
- 12.6使用Docker搭建微服务治理环境
- 12.7使用Docker部署日志分析平台
- 12.8使用Docker部署微服务应用
- 12.9小结
13数据库集群设计与高可用读写分离实施
- 13.1 MySQL安装
- 13.2 主从同步设置
- 13.3主主同步设置
- 13.4 数据库代理中间件选择
- 13.5使用OneProxy实现读写分离
- 13.6 OneProxy 分库分区设计
- 13.7双机热备设计
- 13.8小结
14分布式文件系统等基础设施安装与配置
- 14.1高可用的分布式文件系统构建
- 14.2 GitLab 安装
- 14.3Redis安装
- 14.4 RabbitMQ 安装
- 14.5 小结
15使用自动化构建工具Jenkins实现CI/CD
- 15.1 持续交付工作流程
- 15.2 Jenkins 安装
- 15.3 Jenkins 基本配置
- 15.4 Jenkins 自动部署实例
- 15.5小结
深入理解Spring Cloud与微服务构建
第1章微服务简介
介绍了什么是微服务、为什么需要微服务、微服务的优缺点和面临的挑战,并且将单体架构的系统和微服务架构的系统进行了比较。
第2章Spring Cloud简介
主要介绍微服务应该具备的功能以及Spring Cloud的基本组件,最后介绍了SpringCloud与Dubbo、Kubernetes 之间的差异。
第3章构建微服务的准备
第4章开发框架Spring Boot
第3、4章介绍了构建微服务的准备工作:开发环境的构建和Spring Boot的使用。
第5章服务注册和发现Eureka
第6章负载均衡Ribbon
第7章声明式调用Feign
第8章熔断器Hystrix
第9章路由网关Spring Cloud Zuul
第5~9章介绍了Spring Cloud框架的基础模块一Spring Cloud Ntlix 模块,涵盖了Spring Cloud构建微服务的基础组件。诸如Eureka、Ribbon、 Feign、 Hystrix 和Zuul等组件为微服务系统提供了基本的服务治理能力。
第10章服务网关
第10章介绍了Spring Cloud的第二代网关Gateway。Gateway 在性能上比Zul要优异很多,是Spring Cloud的新一代网关。
第11章服务注册和发现Consul
第11章介绍了服务注册中心Consul,详细讲解了如何使用Consul进行服务注册和发现,以及如何使用Consul 作为分布式配置中心。
第12章配置中心Spring Cloud Config
第12章介绍了分布式配置中心Spring Cloud Config,详细讲解了Config Server如何从本地仓库和远程Git仓库读取配置文件,以及如何构建高可用的分布式配置中心和使用消息总线刷新配置文件。
第13章服务链路追踪Spring Cloud Sleuth
第13章介绍了链路追踪组件Spring Cloud Sleuth,包括微服务系统为什么需要链路追踪组件,并以案例的形式详细介绍了如何在Spring Cloud微服务系统中使用链路追踪,以及如何传输、存储和展示链路数据。
第14章微服务监控Spring Boot Admin
第14章以案例的形式介绍了Spring Boot Admin,包括Spring Boot Admin在微服务系统中的应用、在Spring Boot Admin中集成安全组件。
第15章Spring Boot Security详解
第16章使用Spring Cloud OAuth2保护微服务系统
第17章使用Spring Security OAuth2和JWT保护微服务系统
第15~17章介绍了Spring Cloud微服务系统的安全验证模块,包括Spring Boot Security组件和Spring Cloud OAuth2模块。
以上就是《Spring Cloud与Docker高并发微服务架构设计实施》+《深入理解Spring Cloud与微服务构建第2版》的主要内容