#SpringCloud浅析
###微服务发展模式
讲SpringCloud之前,我们探讨一下微服务架构的发展模式,最开始系统都是单体架构,逐渐演进为SOA模式,然后微服务出现,最近服务网格模式也逐渐流行起来。
####单体模式
统一的数据库,统一的应用,适合简单的轻量级应用。
####微服务
适合构建复杂的应用,缺点是设计服务化有一定难度,开发变得较单体模式复杂,部署变得更麻烦。
微服务,SOA模式,服务网格的区别:
微服务:
- 模块化
- 独立部署
- 异构化
SOA模式:
- 共同的治理和标准
- 专注业务功能的重用
- 通信使用企业服务总线ESB
服务网格:
- 应用程序间通讯的中间层
- 轻量级网络代理
- 应用程序无感知
- 解耦应用程序的重试/超时、监控、追踪和服务发现
###SpringCloud
API网关zuul
我们首先学习SpringCloud全家桶中的API网关zuul。zuul本质上是一个web servlet应用,在微服务架构中起到了动态路由,监控,统一鉴权等作用。zuul核心为一系列的filters。zuul的作用如下
- 权限校验 : 识别资源的验证并拒绝不符合要求的请求
- 性能检测 : 在服务边界统计数据
- 动态路由 : 将请求动态路由到服务中
- 压力测试: 逐渐增加指向集群的负载流量,从而计算性能水平。
- 负载分配: 为每一种负载类型分配对应容量,并弃用超出限定值的请求。
- 静态响应处理: 在服务边界直接返回某些特定静态资源,避免请求后台
服务注册与发现Eureka
Eureka的主要作用为服务的注册与发现,Eureka采用C-S架构模式,Eureka侧重于可用性。Eureka分为三个角色。
- Eureka Server:提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册。
- 服务提供方 :将发布的服务注册到eureka中
- 服务调用方 : 从eureka中获取服务列表,调用服务。