如何构建高可用的系统(三):服务治理篇

如何构建高可用的系统(一):Overview中, 我提到了以下几点:

  1. 系统依赖的一切下游系统都是不可靠的, 它们随时可能出问题
  2. 系统的上游可能有多个, 而且每个上游的行为都是不可预知的。如果某个上游抽风把我的系统搞崩, 那么就会影响所有的上游
  3. 高可用是有前提条件的,一个系统对当前的负载能提供高可用, 不代表负载上升之后仍然高可用

如果把这几个问题,映射到现在非常流行的“微服务架构”下,就可以统一用“服务治理”来概括。 下面我们具体探讨下,如何解决这几个问题。

1. 下游管理

系统所依赖的各个下游系统是不可靠的, 它们随时可能会出问题。 比如我们开发了一个用户服务, 会访问数据库、缓存等, 那这些下游的数据库、缓存出问题的时候, 我们该怎么办呢?

1.1 降级措施

当下游出现问题时, 我们的服务或多或少都会受影响。 为了保证核心场景仍然高可用, 我们需要把相关功能降级,以减少损失。 比如以下场景:

当数据库挂掉的时候,所有对数据库的读写都会失败。 为了使创建用户的功能仍然对外可用, 我们可以选择打开降级开关, 把创建用户的请求发到消息队列中, 在数据库恢复之后, 从队列中拉取消息, 再把数据写入数据库中。

对上游来说,写入成功之后, 当然得能通过读接口获取到数据。 因此, 我们还得把数据写入到缓存中, 这样即使数据库挂了,

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值