微服务架构(一)分布式系统高可用设计方案

本文探讨了微服务架构中实现高可用性的关键策略,包括服务冗余、无状态化、幂等设计、录入验证、超时机制、负载均衡、异步处理、服务限流降级熔断、数据复制与服务治理。通过这些手段,确保系统在面对故障时仍能保持稳定运行,并介绍了服务分级和如何平滑停止线上服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高可用性(稳定性) 


判断指标


传统的判断是否高可用的指标是看一段时间内停机时间在总运行时间的占比,1个9是90%的时间可用,2个9是99%的时间可用
3个9是千分之一的时间不可用。
科学的衡量指标是影响的请求量在总请求量中的占比。晚上没人使用的时候停机和白天使用高峰期停机影响程度是不一样的。


主要手段


一服务冗余
服务的硬件和软件总是会出问题的,所以在整个业务链路中,要保证每个节点的服务都是多份冗余,一旦一台服务挂掉,
可以迅速把流量切换到其他冗余服务器。
二无状态化
要想做到一个节点多份冗余,就要是服务无状态化,这样既可以做到快速的流量分流,也可以快速的伸缩服务器数量。现在流行的dock容器就是
为快速方便扩容而生的。
三幂等设计
对同一个请求多次重复提交,得到的结果应该是一样的。
四录入验证机制
用户是万恶的,如果你不能对录入的内容进行合理的检查和限制,你根本不知道你的用户会在你的系统中做出什么的举动。
五超时机制
六负载均衡
根据相关负载均衡算法对流量进行合理的分配。(狭义上的负载均衡nginx F5都可以做)
如果一台服务器挂掉(假死,内存溢出等),要能够快速把改服务从服务队列中移除。(这个不能使用zookeeper等注册服务,因为注册服务是通过ping的方式
检查一个应用的状态,这样并不能判断一个服务是否宕机,nginx可以通过配置来承担这类工作,但nginx是一个中间件,最好是用jar包的方式解决这类问题)
对于挂了的服务,怎么进行快速的恢复。
七异步化设计
异步处理的目的是保主流程,增加吞吐量。对于那些不需要返回结果的边缘业务,可以通过异步来处理。
八服务限流降级和熔断
在网关层可以通过一个流量漏洞来限制一定时间内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值