分布式系统的几种形式:
一致性的要求:
- 强一致性
- 弱一致性 :对于分布式系统很难保证强一致性
- 最终一致性 :比较容易解决一致性的相关问题
分布式系统的几种形式
- 多数据源 :在一个系统中sh使用多个数据源
- 多服务:把一个服务拆分成多个子服务,me每个服务部署多个实例。
- SOA:
- 微服务架构:
SOA架构:
Service Bus:做服务的注册和调用
服务间不能相互调用
微服务架构
服务间可以通过fu服务间的协议进行调用。
分布式系统需要考虑的问题
-
服务拆分
-
数据分拆
怎样分拆数据库,平衡数据库压力
-
计算拆分
-
服务状态以及异常处理
最终一致性 的解决方案,需要结合业务考虑
微服务架构的组成
- 服务发现与注册
注册中心注册,通过网关从注册中心获取服务的地址,可通过负载均衡方式调用。
- 服务网关与负载均衡
网关 和 负载均衡实现方式
- 监控与熔断机制
- 配置、消息等
配置中心
SpringCloud微服务架构
zuui网关:服务通过网关调用, 负载均衡
注册中心:eureka
Feign Client:服务间调用
Config Server:配置中心
监控熔断:Hystric等。
SpringCloud微服务架构组成
- Spring Cloud Netflix微服务架构
服务注册中心:Eureka
eureka宕机后,服务仍然可以通过缓存进行调用。
网关:ZUUL
声明示Rest调用接口:Feign Client
负载均衡:Ribbon
网关、服务间调用都会默认使用Ribbon进行负载均衡。
监控、熔断组件:Hystrix与Hystrix Dashboard
Hystrix:获取监控数据
Hystrix Dashboard:监控页面
- Spring Cloud Config 配置服务器
配置:文件夹、Git、Svn、DB 配置地址。
配置服务器
启动过程: 服务--》配置服务器--》配置
- Spring Cloud Bus事件总线