简明入门讲义——一文理清负载均衡和反向代理

Source: refactoring.guru

负载均衡器

负载局衡器(Load Balance,下文简称 LB)更像是一个请求调度中心,主要是为了分发请求。这一角色使得它可以

  • 避免请求分配到不可用的服务器,例如发送心跳感知服务器在线情况
  • 避免服务器过载,例如实现一个简单的请求计数器或者统计请求的响应时间等。
  • 解决单点问题,实现水平扩展
  • 根据请求类型分配指定的服务器(例如静态文件分配给 CDN、读写或冷热分离等)

负载均衡器可以工作于两层, L4 TCP 层或者 L7 应用层。

L4 —— 传输控制协议层

工作于传输控制协议层意味着 LB 只获取 TCP 表头的基本信息:来源 IP、目的 IP 等,请求体的内容对 LB 是透明的,也就是说 LB 看不到请求的内容,只知道它从何处来要往何处去,带了多重的“行李”。L4 层的 LB 可以实现简单的轮询、随机、或者基于 IP 的地理位置请求分发。

L7 —— 应用层

工作于应用层,例如最常用的 HTTP 协议层,则可以根据 HTTP 的方法、URL、版本、HTTP 头部信息甚至是根据请求体的内容,请求体都需要过 LB 这个安检机器,LB 知道“行李”装的是什么。当然,它的行程和重量,LB 也一清二楚(即实际上 LB 同时工作于 L4 和 L7 层),工作于 L7 层相比于 L4 层会更损耗性能,但在今天这个性能过剩的时代,这点损耗是可以接受的。

有了这个能力,LB 可以:

  • 根据请求方法、类型分配指定的服务器
  • 根据会话信息分配给保存相应会话的服务器,用户就可以不必重新登录
  • 充当 SSL 端点(Termination)LB 背后的服务器就不必每一个都去搭建相同的 SSL 环境了。

诶?等等,SSL 端点功能不是反向代理的吗?

没错,反向代理的功能也被融入在负载均衡器中,这才使得有些人分不清二者的区别。

负载均衡器是为了分配请求、解决单点问题而生的,因此负载均衡器必须是两个或以上才有意义。而反向代理一个服务器也可以。

反向代理

Source: refactoring.guru

反向代理有点类似设计模式的外观模式(Facade Pattern),这个设计模式可以隐藏系统的复杂性,提供统一的接口。类似的,反向代理只需要向客户端提供一个统一的地址。这样设计的好处是:

  • 提高安全性 —— 统一的入口使得后端服务器的 IP 不会暴露在公网上,客户端只需要与代理服务器打交道。DDoS 攻击的处理、IP 黑名单等交由反向代理负责,反向代理可以从源头限制后端服务器可以接受的连接数量

  • 提高扩展性和灵活性—— 统一的入口使得后端架构对客户端是不可见的,你可以替换服务器来维护集群的健康、根据访问量增删服务器来实现弹性负载均衡。没错,这里的功能与 LB 相辅相成。

既然是代理,请求的整个过程对反向代理都是可见的,因此反向代理可以实现:

  • 承担请求的解压缩,类似单一职责原则的设计,解压和压缩都由反向代理来实现。
  • SSL 端点,扩展服务器时就不需要搭建 SSL 服务了。
  • 请求返回的缓存,对于不需要专用 CDN 的网站,反向代理也实现了请求加速的功能。

总结

总结一下,负载均衡器更关心请求如何分发,只有服务器不少于两个才有意义

反向代理提供请求的统一入口,也可以控制请求的返回。只有一台服务器也可以实现它的功能

参考文档

  1. 外观模式 - Wikipedia
  2. TCP - Wikipedia
  3. Http 消息 - Mozilla
  4. What Is Layer 4 Load Balancing? - NGINX
  5. What is a Reverse Proxy vs. Load Balancer? - NGINX

公号:程序员的碎碎念

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容