美文网首页
分布式系统的负载均衡

分布式系统的负载均衡

作者: C1R2 | 来源:发表于2020-10-13 22:35 被阅读0次

    一、 什么是负载均衡?

    什么是负载均衡?

    记得第一次接触 Nginx 是在实验室,那时候在服务器部署网站需要用 Nginx 。Nginx 是一个服务组件,用来反向代理、负载平衡和 HTTP 缓存等。那么这里的 负载均衡 是什么?

    负载均衡(LB,Load Balance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避免过载。

    资源,相当于每个服务实例的执行操作单元,负载均衡就是将大量的数据处理操作分摊到多个操作单元进行执行,用来解决互联网分布式系统的大流量、高并发和高可用的问题。那什么是高可用呢?

    二、什么是高可用?

    首先了解什么是高可用?
    这是 CAP 定理是分布式系统的基础,也是分布式系统的 3 个指标:
    Consistency(一致性)
    Availability(可用性)
    Partition tolerance(分区容错性)

    那高可用(High Availability)是什么?高可用,简称 HA,是系统一种特征或者指标,通常是指,提供一定性能上的服务运行时间,高于平均正常时间段。反之,消除系统服务不可用的时间。

    衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用。

    举个例子,一些知名的网站保证 4 个 9 以上的可用性,也就是可用性超过 99.99%。那 0.01% 就是所谓故障时间的百分比。比如电商网站有赞,服务不可用会造成商家损失金钱和用户。那么在提高可用性基础上同时,对系统宕机和服务不可用会有补偿。

    比如下单服务,可以使用带有负载均衡的多个下单服务实例,代替单一的下单服务实例,即使用冗余的方式来提高可靠性。

    总而言之,负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一。一般通过负载均衡,冗余同一个服务实例的方式,解决分布式系统的大流量、高并发和高可用的问题。负载均衡核心关键:在于是否分配均匀。

    图片.png

    小结

    对外看来,负载均衡是一个系统或软件的整体。对内看来,层层上下游调用。只要存在调用,就需要考虑负载均衡这个因素。所以负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一。考虑主要是如何让下游接收到的请求是均匀分布的:

    第 1 层:客户端层 -> 反向代理层 的负载均衡。通过 DNS 轮询
    第 2 层:反向代理层 -> Web 层 的负载均衡。通过 Nginx 的负载均衡模块
    第 3 层:Web 层 -> 业务服务层 的负载均衡。通过服务治理框架的负载均衡模块
    第 4 层:业务服务层 -> 数据存储层 的负载均衡。通过数据的水平分布,数据均匀了,理论上请求也会均匀。比如通过买家ID分片类似

    参考链接-https://zhuanlan.zhihu.com/p/74497845

    相关文章

      网友评论

          本文标题:分布式系统的负载均衡

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