负载均衡是分布式系统不可或缺的技术,从字面上来说,就是不可能所有事都给一台电脑做,电脑的CPU和记忆体是有上限的,所以需要一台机器作为指挥官把任务loading平均分散给其他电脑做
例如有三台机器,机器不管做小数或大数加法的性能是差不多的,假设都是1秒,有一个任务是计算1+2+3+4+5+6,那麽指挥官就可以把1+2,3+4,5+6分别给这三台机器算,最後再把这三个加起来,总共只要3秒,速度提升了两倍也均衡了任务分配
负载均衡通常会实作在API层,API层就是指挥官负责分散任务loading,再Lab中,我们会利用API层拆解Object成components後,用随机演算法分散他们让不同的data server去消费数据,但是本篇会介绍其他负载均衡的演算法,如果有兴趣的读者欢迎自己实作替换原本的随机演算法
DNS负载均衡
这主要是多个入口的负载均衡技术,可以理解为多个API层之间怎麽做负载均衡,我们知道我们对一个网址做request,假如google好了,你并不会马上得到google的内容,而是会去DNS server询问这个google.com对应的ip是什麽,然後得到ip,把google.com换成对应的ip,才能拿到网页资料,当然这些浏览器都帮你封装好了,我们可以对DNS server做附载均衡,随机的return四个不同的ip
Scheduling
Scheduling,也就是轮询很简单,假如有四台server供你使用,一有request过来,则照顺序的一个个分配,到底了再从头过来就好
Hash
可以对request的ID做hash,假如有四台机器,则对hash後的数字%4,让对应的server去处理它,这个演算法的好处是我们可以把相关类似的资料集中放在某台机器,加快处理时间,坏处是如果遇到恶意client,容易被DDOS
加权演算法
这就需要对系统的客户有细致的了解,我们可以对每个request归类,并分权重,一个connection就是一个权重分数,有点类似背包问题或贪心法,request过来了就给目前负载分数最小的那个server
<<: [想试试看JavaScript ] HTML DOM
昨天我们完成了基础建设,但是有个地方忘记讲到,我现在赶快补充一下! 我们昨天设定归还日期时,一定有人...
尽管都是模型,但预测模型目的在於预测未来,所以开发方式也会和描述型模型有所差异。 Initiatio...
昨天我们尝试将 Hexo 备份到储存库另外一个分支,但如果哪一天真正需要使用这个备份还原本机环境怎麽...
接着上一篇文章我们建立好代管式资料库後,里面目前还没有资料,将如何把资料搬迁到云端资料库中呢? 目...
介绍 首先介绍什麽是如何附加自己的分类在别人的情绪之上, 对别人已经训练好的情绪 model,我们对...