码迷,mamicode.com
首页 > Web开发 > 详细

大型网站技术架构 构建高可用的网站 高可用的服务

时间:2019-03-08 11:22:08      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:网站   队列   超过   调度   技术架构   通信   进一步   超时   容器   

在之前的章节中,说道了从三个方面,应用,服务,数据三个维度来进一步分析高可用,本章介绍如何去构建高可用的服务

关键词

  服务分级,超时设置,异步调用,服务降级,幂等性设计

 

之前文章有介绍从应用的角度如何进行可用性的部署,进行应用的集群,可以从虚拟化容器或者从多个机器的角度来考虑,在应用的内部,也有一些常用的可用性方案

服务分级

  将核心应用与非核心应用进行分离,核心应用和服务优先使用更好的机器,在服务部署上也进行必要的隔离,避免故障的连锁反应

超时设置(针对通信)

  设置服务连接超时时间,一旦超时,应用程序根据服务调度策略,可选择重试(配置重试次数)或将请求转移到提供相同服务的其它服务器上

  例如:目前有A,B两个服务,分配部署在IP1(A服务),IP2(B服务),IP3(B服务)上,A服务调用B服务,第一次,A服务调用IP2所在B服务,假设超时时间为2S,当连接时间超过2S或者连接失败后,可进行重新连接,或者连接IP3上所在的B服务(目前大多分布式通信框架都有此配置:dubbo)

异步调用(消息队列)

  在通信过程中,有同步和异步两个概念,异步调用在高并发性能方面能很好的处理一些场景

  同步:需等待调用结果的返回

  异步:不需要等待调用结果的返回,配置回调机制或者不需要去处理等待结果

服务降级(保证核心应用和功能的正常运行)在高并发的场景下,系统刚不住的情况常用方案

  • 拒绝服务 拒绝低优先级应用的调用,减少服务调用并发数,确保核心应用正常使用,随机拒绝部分请求调用,释放资源,让另一部分请求得以成功
  • 关闭服务 关闭部分不重要的服务,或者服务器内部关闭不重要的功能,解决系统开销,为重要服务和功能让出资源

幂等性设置

  防止重复调用,造成数据的准确性失误

  例如:涉及支付系统,在服务端,需要做幂等性设计,当订单系统向支付系统提交了支付请求后,为防止订单系统重复提交而导致支付多笔,造成资金的损失

 

以上是一些架构设计中的常用方案,但是需要结合实际业务场景进行设计,没有一套方案能解决所有问题

 

 

  

  

  

 

 

大型网站技术架构 构建高可用的网站 高可用的服务

标签:网站   队列   超过   调度   技术架构   通信   进一步   超时   容器   

原文地址:https://www.cnblogs.com/hpzhu/p/10494497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!