负载均衡
负载均衡是一个广泛而普遍存在的一个问题。
常见的分布式系统如分布式缓存,分布式存储,分布式计算,分布式数据库等等,都存在这个问题。分布式缓存中可能会遇到短时间内集中访问同一个缓存的情况;分布式存储可能单机磁盘使用过度;分布式计算可能会有单点的计算负担过重;分布式数据库可能会有单机访问量过大。
参考[1]作者总结的负载均衡定义:在多点协作的系统中由于不合理的任务分配导致某个或者少量的某些节点处理负担过重,最终拖延整个系统对外的响应效率。
负载均衡的解决思路主要有:
1. 被动解决,发现负载倾斜后,将负载迁移到空闲节点
2. 主动预防,防止倾斜的发生
2.1 系统任务分配方式主动预防
2.1.1 静态负载均衡
2.1.2 动态负载均衡
2.2 用户先验知识的介入
参考:
[1]http://youli9056.github.io/blog/load-balancing-on-hadoop-mapreduce/