分布式

2022-10-25 16:06:57 浏览数 (1)

什么是分布式架构下的高可用设计

  1. 避免单点故障 a) 负载均衡技术(failover/选址/硬件负载/ 软件负载/去中心化的软件负载(gossip(redis- cluster))) b) 热备(linux HA) c) 多机房(同城灾备、异地灾备)
  2. 应用的高可用性 a) 故障监控(系统监控(cpu、内存)/链路监控/日志监 控) 自动预警 b) 应用的容错设计、(服务降级、限流)自我保护能力 c) 数据量(数据分片、读写分离)

分布式架构下的可伸缩设计

垂直伸缩 提升硬件能力 水平伸缩 增加服务器

加速静态内容访问速度的 CDN

CDN 是 Content Delivery Network 的缩写,表示的是内容分发网络。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 文件,图片文件包括程序模板中的,CSS 文件中用到 的背景图片,还有就是作为网站内容组成部分的那些图片, 都可以;

灰度发布

我们的应用虽然经过了测试部门的测试,但是仍然很难全面覆盖用户的使场景,为了保证万无一失,我们在进行发布的时候一般会采用灰度发布,也就是会对新应用进行分批发布,逐步扩大新应用在整个及群众的比例直到最后全部完成。灰度发布是针对新引用在用户体验方面完全无感知。灰度发布系统的作用在于,可以根据自己的配置,来将用户的流量导到新上线的系统上,来快速验证新的功能修改,而一旦出问题,也可以马上的恢复,简单的说,就是一套A/BTest 系统.

0 人点赞