美文网首页
高可用的服务

高可用的服务

作者: 代码的搬运工 | 来源:发表于2019-11-25 20:47 被阅读0次

1、分级管理

运维上将服务器进行分级管理,核心应用和服务优先使用更好的硬件,在运维响应速度上也格外迅速。显然,用户及时付款购物比能不能评价商品更重要,所以订单、支付服务比评价服务有更高优先级。

同时在服务器部署上也进行必要的隔离,避免故障的连锁反应。低优先级的服务通过启动不同的线程或者部署在不同的虚拟机上进行隔离,而高优先级的服务则需要部署在不同的物理机上,核心服务和数据甚至需要部署在不同地域的数据中心。

2、超时设置

由于服务端宕机、线程死锁等原因,可能导致应用程序对服务端的调用失去响应,进而导致用户请求长时间得不到响应,同时还占用应用程序的资源,不利于及时将访问请求转移到正常的服务器上。

在应用程序中设置服务调用的超时时间,一旦超时,通信框架就抛出异常,应用程序根据服务调度策略,可选择继续重试或将请求转移到提供相同服务的其他服务器上。

3、异步调用

应用对服务的调用通过消息队列等异步方式完成,避免一个服务失败导致整个应用请求失败的情况。如提交一个新用户注册请求,应用需要调用三个服务:将用户信息写入数据库,发送账号注册成功邮件,开通对应权限。如果采用同步服务调用,当邮件队列阻塞不能发送邮件时,会导致其他两个服务也无法执行,最终导致用户注册失败。

如果采用异步调用的方式,应用程序将用户注册信息发送给消息队列服务器后立即返回用户注册成功响应。而记录用户注册信息到数据库、发送用户注册成功邮件、调用用户服务开通权限这三个服务作为消息的消费者任务,分别从消息队列获取用户注册信息异步执行。即使邮件服务队列阻塞,邮件不能成功发送,也不会影响其他服务的执行,用户注册操作可顺利完成,只是晚一点收到注册成功的邮件而已。

当然不是所有服务调用都可以异步调用,对于获取用户信息这类调用,采用异步方式会延长响应时间,得不偿失。对于那些必须确认服务调用成功才能继续下一步操作的应用也不合适使用异步调用。

4、服务降级

在网站访问高峰期,服务可能因为大量的并发调用而性能下降,严重时可能会导致服务宕机。为了保证核心应用和功能的正常运行,需要对服务进行降级。降级有两种手段:拒绝服务和关闭服务。

拒绝服务:拒绝低优先级应用的调用,减少服务调用并发数,确保核心应用正常使用;或者随机拒绝部分请求调用,节约资源,让另一部分请求得以成功,避免要死大家一起死的惨剧。

关闭功能:关闭部分不重要的服务,或者服务内部关闭部分不重要的功能,以节约系统开销,为重要的服务和功能让出资源。

5、幂等性设计

应用调用服务失败后,会将调用请求重新发送到其他服务器,但是这个失败可能是虚假的失败。比如服务已经处理成功,但因为网络故障应用没有收到响应,这时应用重新提交请求导致服务重复调用,如果这个服务是一个转账操作,就会产生严重后果。

服务重复调用是无法避免的,应用层也不需要关心服务是否真的失败,只要没有收到调用成功的响应,就可以认为调用失败,并重试服务调用。因此必须在服务层保证服务重复调用和调用一次产生的结果相同,即服务具有幂等性。

有些服务天然具有幂等性,比如将用户设置为男性,不管设置多少次,结果都一样。但是对于转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。

相关文章

  • 综合架构之keepalived(高可用)

    内容涉及 高可用原理高可用配置文件高可用服务常见问题实现高可用服务双主功能 keepalivd----------...

  • 服务部署如何做到高可用?这份“三级跳”秘籍送给你

    高可用部署要求 图1 高可用部署 (*注:随着服务满足高可用要求的增多,服务的高可用能力就越强) 一致性 这里的一...

  • 负载均衡实现高可用

    1. 高可用服务介绍说明 避免负载均衡服务出现单点问题 2. 高可用服务原理 VRRP 3. 如何实现部署高可用服...

  • 22高可用服务

    避免负载均衡服务出现高可用服务原理 如何实现部署高可用服务利用keepalived软件实现​ 为LVS服务而...

  • 服务高可用

    可用性度量指标 年度可用性 = 可用时间/年度时间*100% 2个9:基本可用,不可用时间小于88小时 3个9:较...

  • 高可用的服务

    1、分级管理 运维上将服务器进行分级管理,核心应用和服务优先使用更好的硬件,在运维响应速度上也格外迅速。显然,用户...

  • 互联网架构为什么要做服务化?

    一、互联网高可用架构,为什么要服务化?【服务化之前高可用架构】在服务化之前,互联网的高可用架构大致是这样一个架构:

  • D-50高可用冗余服务(keepalived)

    一、高可用冗余服务介绍 作用说明: 避免单点故障1). 负载均衡服务2). 数据库服务 高可用(MHA)3)...

  • 第二章架构设计之技术实践篇(上)

    本章要点 高可用设计手段 高并发设计手段 服务无状态化设计 服务负载均衡设计 服务幂等性设计 1.高可用设计手段 ...

  • 《全栈工程师修炼指南》学习笔记 18

    数据的持久化和一致性 可用性 保证服务对于客户端的可用。服务为了高可用,就要部署多个节点;数据为了高可用,就要存放...

网友评论

      本文标题:高可用的服务

      本文链接:https://www.haomeiwen.com/subject/hbojwctx.html