架构训练营学习笔记:5-2 负载均衡架构

多级负载架构

设计关键点

性能需求、维护复杂度之间做取舍。

一可以去掉F5、LVS :

F5 是成本较高,LVS 是复杂,对于性能没那么高需求,可以去掉。 

二 去掉ng:

服务网关+服务  

适应于初创公司快速验证,内部的 小系统,通常不会这样,NG一般会保留,有些证书会好处理。

DNS

dns劫持,提出了httpdns.这种适合APP模式。由于绕过了运营商的LocalDNS,解决了域名解析异常。,大厂案例:【鹅厂网事】全局精确流量调度新思路-HttpDNS服务详解

 GSLB

GSLB(Global Server Load Balancing):全局负载均衡,主要用于在多个区域拥有自己服务器的站点,为了使全球用户只以一个 IP 地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度

  

基于DNS的GSLB

 

优缺点

  1. 实现简单、实施容易、成本低
  2. 可能判断不准,例如用户手工指定了DNS服务器

基于HTTP redirect的GSLB

 优缺点

  1. 能够拿到用户真实IP,判断准确
  2. 只适合HTTP业务

基于IP欺骗的GSLB

 优缺点

  1. 适合所有业务
  2. 每次请求必须经过GSLB设备,性能低
  3. 一般配合HTTP redirect GSLB一起应用

F5 就是贵

LVS

lvs的模型:nat模型 

 反向代理,类似于 Nginx。

lvs的模型:dr模型 

LVS 和服务器在同一企业网络

LVS-TUN模型

 

复杂均衡算法

轮询&随机

 

加权轮询 

 

 具体加权轮询算法 

负载优先算法

 

性能优先

 

 hash

常见负载均衡算法

 

lvs 负载均衡算法 

 业务级别负载均衡

通用负载均衡算法是基于请求的,业务级别的负载均衡是基于业务内容的,更灵活

例如蚂蚁的 LDC 架构,腾讯的 SET 单元化架构,截图的例子是spanner转发的

一次路由
箭头1:对于应该在本 IDC 处理的请求,直接映射到对应的 RZ 即可;

箭头2:不在本 IDC 处理的请求,Spanner 可以转发至其他 IDC 的Spanner。

二次路由
对于有些场景,A 用户的一个请求可能关联了对 B 用户数据的访问,比如 A转账给 B,A 扣完钱后要调用账务系统去增加 B 的余额。这时候就涉及到:

箭头3:跳转到其他 IDC 的 RZone;

箭头4:跳转到本 IDC 的其他 RZone。

数据路由:RZ 访问哪个数据库,是可以配置的,对应图中箭头5

负载均衡技巧——cookie

自定义HTTP Header

HTTP query string

 

 服务器性能估算

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/62364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【uniapp】uniapp打包H5(网页端):

文章目录 一、设置appid:二、设置router:三、打包:【1】[CLI 发行uni-app到H5:https://hx.dcloud.net.cn/cli/publish-h5](https://hx.dcloud.net.cn/cli/publish-h5)【2】HBuilderX 四、最终效果: 一、设置appid&…

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

Paypal是传统支付领域的巨头企业,在北美支付市场占有率约为77%以上。从具体的业务数据看,在8月初,Paypal公布的2023年第二季度财报显示,PayPal第二季度净营收为73亿美元,净利润为10.29亿美元。虽然Paypal的净利润相交去…

buildroot使用介绍

buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包…

提速Rust编译器!

Nethercote是一位研究Rust编译器的软件工程师。最近,他正在探索如何提升Rust编译器的性能,在他的博客文章中介绍了Rust编译器是如何将代码分割成代码生成单元(CGU)的以及rustc的性能加速。 他解释了不同数量和大小的CGU之间的权衡…

[C语言]深入浅出,带你构建C语言宏观框架

导言: 本文章会带你基本了解C语言,对他有一个感性的认识,对其有一个框架,后期在对其进行更加细致的补充。 文章目录 C语言第一个函数变量局部变量 与 全局变量常量字符串 与 转义字符 头文件分支 与 循环注释数组关键字操作符宏指…

【Go语言】Golang保姆级入门教程 Go初学者chapter2

【Go语言】变量 VSCode插件 setting的首选项 一个程序就是一个世界 变量是程序的基本组成单位 变量的使用步骤 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/imgmain/image-20…

HTTP代理授权方式介绍

在网络爬虫过程中,我们经常需要使用HTTP代理来实现IP隐藏、突破限制或提高抓取效率。而为了确保代理的正常使用,并避免被滥用,代理服务商通常会采用授权方式。在本文中,我们将介绍几种常见的HTTP代理授权方式,以帮助你…

【React学习】—jsx语法规则(三)

【React学习】—jsx语法规则(三) 一、jsx语法规则: 1、定义虚拟DOM,不要写引号, 2、标签中混入JS表达式要用{} 3、样式的类名指定不要用class,要用className 4、内联样式,要用style{{key:value}…

奋斗四个月,我要上西工大

距离考研初试还有135天,今天我参观了西北工业大学,看到了《何尊组雕》,让我肃然起敬。 西北工业大学,国防七子,我也不知道自己能否够得着,也许只有时间能带给我答案。 在过去三年的积累中,我的…

iOS开发-WebRTC本地直播高分辨率不显示画面问题

iOS开发-WebRTC本地直播高分辨率不显示画面问题 在之前使用WebRTC结合ossrs进行推流时候,ossrs的播放端无法看到高分辨率画面问题。根据这个问题,找到了解决方案。 一、WebRTC是什么 WebRTC是什么呢? WebRTC (Web Real-Time Communicatio…

微信小程序如何配置并使用less?

1,检查微信开发者工具(工具版本1.03)————这步很重要不然后面按步骤实行后会发现急死你也还是不管用,我之前死在过这一步,所以大家不要再次踩坑了 ~ ~ 。。。 2,在VScode中下载Less插件 3,…

Unity-Shader-高亮Highlight

常用Shader-高亮,可动态调整高亮颜色、高亮强度范围/等级、高亮闪烁速度、高亮状态 Shader "CustomShader/Highlight" {Properties{_Color("Color", Color) (0.9044118,0.6640914,0.03325041,0)_Albedo("Albedo", 2D) "white…