Load Balancer实现

参考: https://kemptechnologies.com/load-balancer/load-balancing-algorithms-techniques/

Round Robin DNS: 多个相似的Server,提供一样的服务。 每个server都使用同一个Internet Domain name, 但是不同的IP address. A DNS Server 有a list of all the unique IP addresses,与internet domain  name 联系在一起。 


百度百科上的中文翻译:

◎ 依序Round Robin

◎ 比重Weighted Round Robin

◎ 流量比例Traffic

◎ 使用者端User

◎ 应用类别Application

◎ 联机数量Session

◎ 服务类别Service

◎ 自动分配Auto Mode

功能

内建DNS服务器,可维护多个网域(domain),每个网域又可以新增多笔纪(A/CNAME/MX),达到Inbound Load Sharing的功能。

1.DNS负载均衡最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。


Round Robin DNS:

这是最简单暴力白痴的算法。 首先,我们有一个DNS: 比如说 www.google.com

然后这个domain name对应好几种不同的unique IP: 127.16.2.7,

 10.235.65.8,    135.6.9.8

每次用户访问的时候,他把用户导向IP的方式是根据rotation IP. 也就是第一次, 你访问,我把你导向列表里第一位的IP。 另一个现在访问,我把他引入排名第二的IP。 第三个人来,把他导入排名第三的IP。第四个人来,又导向排名第一的IP。

Round Robin适合request长度都是一样时间的

不过坏处是:这个算法因为太简单,所以他完全不管也许第一个IP server此时有100万人访问,其他两个server没人的情况。反正就是rotation。


我觉得,做一个Load Balancer 的Project 应该会很有趣。

大概做法应该是有一个List = [instance1, instance2, instance3]

每个console instance  listen to 一个port。 然后load balancer 一个function之类的来决定某个request去到哪个instance。感觉这个可以配合NodeJs来做。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【摘要】 面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器...
    静修佛缘阅读 4,633评论 0 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,200评论 19 139
  • 一、什么是负载均衡 首先我们先介绍一下什么是负载均衡:负载平衡(Load balancing)是一种计算机网络技术...
    小流江海阅读 1,035评论 0 2
  • 分布式架构实践——负载均衡 也许当我老了,也一样写代码;不为别的,只为了爱好。 1 什么是负载均衡(Load ba...
    Bobby0322阅读 7,537评论 1 27
  • 酒这个东西吧,早就从单纯物质本身变成一种文化符号了! 爱他的人,醉舞狂歌,恨不能能把“中华酒文化”拿去申遗;恨他的...
    王小花和mo阅读 931评论 0 1