标签:网站 队列 超过 调度 技术架构 通信 进一步 超时 容器
在之前的章节中,说道了从三个方面,应用,服务,数据三个维度来进一步分析高可用,本章介绍如何去构建高可用的服务
关键词
服务分级,超时设置,异步调用,服务降级,幂等性设计
之前文章有介绍从应用的角度如何进行可用性的部署,进行应用的集群,可以从虚拟化容器或者从多个机器的角度来考虑,在应用的内部,也有一些常用的可用性方案
服务分级
将核心应用与非核心应用进行分离,核心应用和服务优先使用更好的机器,在服务部署上也进行必要的隔离,避免故障的连锁反应
超时设置(针对通信)
设置服务连接超时时间,一旦超时,应用程序根据服务调度策略,可选择重试(配置重试次数)或将请求转移到提供相同服务的其它服务器上
例如:目前有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