如何设计高可用系统架构

一般来说,互联网面试,一般都会考察的:什么是分布式系统,高并发以及简单的高可用系统。限流、熔断、降级,在分布式的系统架构和微服务架构中,其实都是最常见、基础和简单的保障 系统高可用 的手法。可能使用dubbo开发也可能是spring cloud去开发,在这个系统的接口调用中,我们是用hystrix去实现一整套的高可用保障机制,基于hystrix去做了限流、熔断和降级。

hystrix是国外的netflix开源的,netfix是国外很大的视频网站,系统非常复杂,微服务架构多达几千个服务,为自己的场景,经过大量的工业经验,线上生产环境的实践,产出和开源了高可用相关的一个架构,熔断框架:hystrix。

如何用hystrix做限流、熔断、降级。以及这些都是什么鬼?如何使用hystrix来在你的系统中做开发,加入高可用的保障机制?

hystrix未来会成为国内的高可用的限流、熔断和降级这块的标准,spring cloud微服务框架,就是集成了hystrix来做微服务架构中的限流、降级和熔断的。

问题:如何设计一个高可用系统?

1.hystrix是什么?

netflix(国外最大的类似于爱奇艺、优酷)视频网站,感觉自己的系统,经常故障,可用性不太高,有时候一些VIP会员不能支付,有时候看视频卡顿,看不了视频。。。影响公司的收入。在这种情况下开发了hystrix框架。

hystrix框架提供了高可用相关的各种各样的功能,然后确保在hystrix的保护下,整个系统可以长期处于高可用状态,100%,99.999999%

最理想的状况,软件的故障,不应该会导致整个系统的崩溃。包括服务器硬件的一些故障,也不会导致整个系统的崩溃(设计有服务冗余)

2.高可用系统架构

资源隔离、限流、熔断、降级、运维监控

资源隔离:让你的系统里,某块东西,在故障的情况下,不会耗尽系统所有的资源。比如线程资源

限流:高并发的流量涌入进来,如果系统一秒钟100万QPS,废掉了,10万QPS进入系统,其他的90万QPS被拒绝了

熔断:系统后端的一些依赖,出了一些故障,比如说mysql挂掉了,每次请求都是报错的,熔断了,后续请求过来都不直接接收了,拒绝访问,10分钟后尝试去看看mysql恢复没有

降级:mysql挂了,系统发现了,自动降级,从内存里存的少量数据,去取一些数据出来

运维监控:架空+告警+优化,各种异常的情况,有问题就及时报警,优化一下系统的配置和参数或者代码。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值