个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一、什么是微服务?
微服务:
- 一系列微笑的服务共同组成
- 跑在自己的进程里
- 每个服务为独立的业务开发
- 独立部署
- 系统的演进:分布式的管理
系统的演进:
二、架构演进
以点餐系统为例
设计的架构形态:
- 单体架构
- 基于Ajax的前后端分离
- 分布式(水平扩展&服务拆分)
1、单体架构
单体架构的优点:
- 容易测试
- 容易部署
单体架构的缺点:
- 开发效率低
- 代码维护难
- 部署不灵活
- 稳定性不高
- 扩展性不够
2、基于Ajax的前后端分离的架构
点餐服务的前后端分离
3、分布式架构
分布式定义:
旨在支持应用系统和服务的开发,可以利用物理架构 由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。
三、微服务架构分析
简单的微服务架构图:
分析: 由图可知,前端服务和后端服务是可以集群化的。
1、微服务架构的基础框架/组件
【1】服务注册发现
服务提供方需要注册到组件上,并且把自己的地址和调用信息发布一下,然后服务的调用方从组件上正确的发现目标服务
接着服务之间内部相互通信之外,还必须要让外界能访问到:
【2】服务网关(Service Gateway)
服务网关是连接服务内外的大门,主要有以下几种特性:
网关会对外屏蔽后台服务的细节,比如后台程序升级或者变化,让用户处于无感知状态;它还有路由的功能,可以将外部的请求反向路由到某个微服务去;还可以做限流或容错的功能;所有的请求都会经过网关,可以在这里监控流量,以及提供监控日志分析。
【3】后端通用服务(也称中间层服务Middle Tier Service)
【4】前端服务(也称边缘服务Ede Service)
2、分布式服务化治理的方式:
阿里系:
- Dubbo
- Zookeeper
- SpringMVC or SpringBoot
Spring Cloud:
- Spring Cloud Netflix Eureka
- SpringBoot
3、Spring Cloud 是什么
Spring Cloud 是一个开发工具集,含了多个子项目
- 利用Spring Boot 的开发便利
- 主要是基于对Netflix开源组件的进一步封装
Spring Cloud简化了分布式开发