加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

互联网大厂的负载均衡和高可用是怎么做的,看完这篇你就懂了

发布时间:2020-02-13 03:47:16 所属栏目:系统 来源:站长网
导读:副标题#e# 一、 什么是负载均衡? 什么是负载均衡? 记得第一次接触 Nginx 是在实验室,那时候在服务器部署网站需要用 Nginx 。Nginx 是一个服务组件,用来反向代理、负载平衡和 HTTP 缓存等。那么这里的 负载均衡 是什么? 负载均衡(LB,Load Balance),是一

为了避免避免单点故障和支持服务的横向扩容,一个服务通常会部署多个实例,即 Dubbo 集群部署。会将多个服务实例成为一个服务提供方,然后根据配置的随机负载均衡策略,在20个 Provider 中随机选择了一个来调用,假设随机到了第7个 Provider。LoadBalance 组件从提供者地址列表中,使用均衡策略,选择选一个提供者进行调用,如果调用失败,再选另一台调用。

Dubbo内置了4种负载均衡策略:

RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的默认负载均衡策略。

RoundRobinLoadBalance:轮询负载均衡。轮询选择一个。

LeastActiveLoadBalance:最少活跃调用数,相同活跃数的随机。活跃数指调用前后计数差。使慢的 Provider 收到更少请求,因为越慢的 Provider 的调用前后计数差会越大。

ConsistentHashLoadBalance:一致性哈希负载均衡。相同参数的请求总是落在同一台机器上。

同样,因为业务的需要,也可以实现自己的负载均衡策略

第 4 层:业务服务层 -> 数据存储层 的负载均衡

数据存储层的负载均衡,一般通过 DBProxy 实现。比如 MySQL 分库分表。

当单库或者单表访问太大,数据量太大的情况下,需要进行垂直拆分和水平拆分两个维度。比如水平切分规则:

Range 、 时间

hash 取模,订单根据店铺ID 等

但伴随着这块的负载会出现下面的问题,需要解决:

分布式事务

跨库 join 等

现状分库分表的产品方案很多:当当 sharding-jdbc、阿里的 Cobar 等

五、小结

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读