首页 > 试题广场 >

随着实体经济对互联网的依赖越来越高,我们生活的方方面面都不知

[问答题]
随着实体经济对互联网的依赖越来越高,我们生活的方方面面都不知不觉地享受这互联网服务带来的便利,这同时也对互联网服务的高可用提出了越来越高的要求。如同停电一样,互联网服务的不可用可能会重大的经济损失,甚至影响生命安全。作为一个技术人员,请阐述如果去保证一个服务的高可用,你能够考虑到哪些方面?并请简要描述这方面你认为通过什么样的手段可以进行改善。
摘抄《大型网站技术架构核心原理与案例分析》
1,分级管理:
    运维上将服务器进行分级管理,核心应用和服务优先使用更好的硬件。同时在服务部署上也要进行必要的隔离,避免故障的连锁反应。低优先级的服务通过启动不同的线程或部署在不同的虚拟机上进行隔离,而高优先级的服务则部署在不同的物理机上,核心服务和数据甚至要部署在不同地域的数据中心。
2,超时设置
    由于服务器宕机、线程死锁等原因,可能导致应用程序对服务端的调用失去响应,进而导致用户请求长时间得不到响应,同时还占用应用程序的资源,不利于及时将访问请求转移到正常的服务器上。
    在应用程序中设置服务调用超时时间,一旦超时,通信框架就抛出异常,应用程序根据调度策略,可选择继续重试或将请求转移到提供相同服务的其他服务器上。
3,异步调用
    应用对服务的调用通过消息队列等异步方式完成。避免一个服务失败导致整个应用请求失败。
    如用户注册请求,应用需要调用三个服务:写入数据库,发送账户注册成功邮件,开通对应权限。如果采用同步服务调用,则如果邮件服务阻塞,会导致整个请求无法继续执行,最终导致用户注册失败。
4,服务降级
    在高峰期将非核心服务降级或关闭
5,幂等性设计
    幂等性:用户对于同一个操作发起的一次请求或多次请求的结果是一致的。
发表于 2017-08-07 17:26:57 回复(1)