高可用(HA)是系统架构设计中必须要考虑的,是指系统所能提供无故障服务的一种能力。
简单的说就是避免因服务器宕机而造成的服务不可用的情况,像Elasticsearch并不会因为一节点的宕机而造成整个搜索服务不可用(可以看我前面文章Elasticsearch分布式架构原理)。
如何衡量高可用
架设你的系统全年都是正常提供服务,那么就是说你系统的可用性是100%,当然这个值是理想状态下,一般都是以几个9来表示系统的可用性,99.99的可用性较多,9越多就代表可用性越强,下面来看看这个几个9是如何计算出来的
可用性=平均故障间隔/(平均故障间隔 + 故障恢复平均时间)
如何设计系统的高可用
想要高可用就要避免使用单点,你想想看你的单台服务器再强应用优化的再极致,只要它宕机,就啥都凉凉了,所以需要多台机器也就是需要集群,方法论中叫冗余。只是有了集群是不能完全满足复杂业务的高可用的,我们要让系统在当前节点宕机的情况下,自己进行切换到好的节点去,这即所谓的故障转移。所以我们现在设计高可用系统的目标明确了。
那就是:冗余 + 故障转移
我们来先看看当前大部分互联网公司的系统架构:
本文探讨了高可用系统设计的重要性,通过计算可用性几个9的含义,提出了实现高可用的关键要素——冗余和故障转移。文中详细阐述了在分布式系统中,从客户端到数据库的各个层面如何设计高可用,包括Nginx的冗余、Redis的主从同步与Sentinel、数据库的双主机制等,并提到编码时应考虑的超时机制、降级策略和限流措施。文章总结了高可用架构的关键点,并鼓励读者关注相关技术分享。
订阅专栏 解锁全文
6694

被折叠的 条评论
为什么被折叠?



