分布式温习概要

一、主流架构模型

1.1 SOA架构

SOA全称(Service Oriented Architecture) 中文意思为 面相服务的架构,他是一种设计方法,轻重包含多个服务,服务之间通过相互依赖最终提供一系列的功能, 一个服务通常以独立的形式存在与操作系统进程中,各个服务之间通过网络调用。

SOA解决的问题:

  • 系统集成 站在系统的角度,解决企业系统间通信的问题。 引入ESB,将网状结构治理成星型
  • 系统的服务化 站在功能的角度,把业务逻辑抽象成可复用可组装的服务
  • 业务的服务化 站在企业的角度,把企业抽象成可复用可组装的服务

1.2 微服务架构

与SOA架构类似,强调业务需要彻底地组件化和服务化

微服务特征:

  • 通过服务实现组件化
  • 按业务能力来划分服务和开发团队
  • 去中心化
  • 基础设施自动化(devops,自动化部署)

二、分布式架构的基本理论

2.1 CAP理论:

  • 强一致性:多并发访问更新过的数据,要求数据能被后续的访问看到
  • 弱一致性:多并发访问更新过的数据,能容忍后续的访问可以看到部分或者全部看不到
  • 最终一致性:多并发访问更新后的数据,如果经过一段时间后要求能访问到更新后的数据 (用得最多)

CAP三要素:

  • 一致性© 所有节点上的数据时刻保持同步
  • 可用性(a) 每个请求都能接受一个响应,无论成功还是失败
  • 分区容忍性§ 系统应该持续提供服务,即使系统内部有消息丢失

CAP原理指三要素最多同时实现2点,不能三者兼顾。

分布式系统分区容忍性是基本要求,大多数web应用不需要强一致性,牺牲一致性换取高可用性,是目前多数分布式架构设计方向。

2.2 BASE理论:

  • 基本可用(ba):分布式系统出现不可预知错误时,允许瞬时部分可用性
  • 软状态(s):系统中的数据存在中间状态,这个中间状态的存在不影响整个系统可用性
  • 数据最终一致性(e):所有数据副本在一段时间的同步后都能达到一个一致的状态。

核心思想:
即使无法做到强一致性,但每个业务可以根据自身业务特点,采用适当的方式来使系统达到最终一致性

2.3 分布式架构下高可用设计:

避免单点故障

  • 负载均衡(硬件负载、软件负载、去中心化负载…)
  • 热备
  • 多机房(同城灾备,异地灾备)

应用的高可用

  • 故障监控(系统监控、链路监控、日志监控)自动预警
  • 应用的容错设计(服务降级、限流)自我保护能力
  • 数据量(数据分片、读写分离)

2.4 分布式下的可伸缩设计

  • 垂直伸缩 提升硬件能力
  • 水平伸缩 增加服务节点(服务器)

2.5 加速静态内容访问速度的cdn

CDN其实就是一种网络缓存技术,能够把一些相对稳定的资源放到距离用户最近的地方,一方面节省整个广域网的带宽消耗,另一方面可以提升用户的访问速度,改进用户的体验,一般会把静态资源文件(图片,脚本,静态页面等)存放在CDN中

1.当用户访问网站时,URL经过本地DNS解析,DNS系统会最终将域名的解析权交割CNAME指向的CDN专用DNS服务器

2.CDN的DNS服务器将CDN的全局负载均衡设备ip 地址放回用户

3.用户想CDN的全局负载均衡设备泛起内容URL访问请求

4.CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL选在一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求

5.区域负载均衡设备为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据IP地址,判断一台服务器距离用户最近。
根据用户所请求的URL中携带的内容名称,判断那一台服务器上有用户所需要的内容,查询各个服务器当前的负载状况,判断那一台服务器尚有服务能力,基于上述条件综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址

6.全局负载均衡设备会把服务器的IP返回给用户,用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。
如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将他分配给用户,那么这台服务器就要向她的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

什么情况下使用CDN?
最适合那些不会经常变化的内容,比如 图片 js文件 css

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值