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