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

Posted hpzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大型网站技术架构 构建高可用的网站 高可用的服务相关的知识,希望对你有一定的参考价值。

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

关键词

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

 

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

服务分级

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

超时设置(针对通信)

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

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

异步调用(消息队列)

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

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

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

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

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

幂等性设置

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

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

 

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

 

 

  

  

  

 

 

以上是关于大型网站技术架构 构建高可用的网站 高可用的服务的主要内容,如果未能解决你的问题,请参考以下文章

大型网站技术架构,5网站的高可用架构之高可用网站的软件质量保证

汇总

汇总

汇总

技术架构文章汇总

技术架构文章汇总