Spring Cloud微服务学习笔记以一个微信点餐springboot系统为背景讲述微服务spring cloud框架的应用和原理实现,系统包括买家端和卖家端两部分,将以卖家端为主;涉及到的架构形态有单体架构、基于Ajax的前后端分离框架vue、分布式(水平拓展&服务拆分)。
“微服务” 一词源于Martin Fowler的名为Microservices的博文,文中详述了微服务概念,原文中的粗体部分如下
一系列微小的服务共同组成运行在独立的进程里每个服务为独立的业务开发独立部署分布式的管理是一种架构风格,无严格标准为什么提出微服务架构?架构的演变:单一应用架构==》垂直应用架构==》分布式服务架构==》流式计算架构
点餐系统结构图 单体结构优点
容易测试容易部署响应时间短,适于并发量中小的系统单体结构缺点
开发效率低扩展性低,代码维护难部署不灵活稳定性不高,无法应对高并发的场景原理架构图 逻辑架构图
简单的微服务架构图
注意与前后端分离的逻辑架构图作对比
服务注册与发现服务提供方在其中注册其自身地址,服务消费方在其中发现要调用的服务地址
服务网关(Service Gateway)前端路由请求的唯一入口,屏蔽后端服务的细节,将外部的路由反向路由到后端服务中去,还会有限流、容错、监控和日志的功能,包括用户认证、授权、反爬虫等
后端通用服务(又称中间层服务Middle Tier Service)将API地址注册在注册中心上,供前端服务使用
前端服务(又称边缘服务Edge Service)对注册在注册中心的后端服务进行聚合和裁剪。聚合:例如将多个API组合为一个API,减少用户调用次数。裁剪:例如手机端和PC端对同一个请求的返回信息详细程度不同
spring cloud 是一个开发工具集,利用了springboot的开发便利;主要基于对Netflix 开源组件的进一步封装,简化了分布式开发