百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一次网络请求中的流量分发过程_一次网流量计算公式

myzbx 2025-09-03 05:27 26 浏览

1. 摘要

现代的企业级或互联网系统往往需要进行流量规划,达成透明多级分流。流量从客户端发出到服务端处理这个过程里,流经的与功能无关的技术部件有(达成 “透明分流” 这个目标所采用的工具与手段):客户端缓存、域名服务器、传输链路、内容分发网络、负载均衡器、服务端缓存。透明分流带来的价值:高可用架构、高并发。

本文主要介绍流量规划中的网络请求过程过程及:

第一部分:对一次网络请求的过程作简要介绍,然后介绍自己目前了解到的前端网络组件搭配方式、后端网络组件搭配方式

第二部分:介绍 LB 负载系统 、vip 与 rip 的映射关系

第三部分:介绍内网域名解析及公网域名解析

2. 网络请求过程

通用请求过程及请求过程名词解释来源于: https://cf.jd.com/pages/viewpage.action?pageId=766717554

2.1 通用请求过程

2.2 请求过程名词解释

rip: 真实 ip,指虚拟机或容器 ip

vip: 虚拟 ip,不可跨机房,online 申请,负载、自动探活等功能,分公网 vip 与内网 vip

内网: 专指机房内部,严格的防火墙策略,内网之间无防火墙,可申请内网 vip 提供负载均衡供应用间互访;内网≠办公网

办公网: 办公区个人电脑网络,通过反向代理访问内网机房应用

公网: 互联网用户网络,通过 DNS + 公网 vip 访问内网机房应用

备注(自己理解 ,有可能理解不正确):

公网 vip 即公网虚拟 ip,虚拟不是说公网上找不到这个 ip,虚拟是相对于服务器 ip(rip)来说的,vip 不直接承担业务逻辑

公网 VIP 在公网真实存在、内网 vip 在公司内网真实存在

2.3 前端网络组件搭配方式

引用链接: http://jdthelp.jdos.jd.com/help/bestpractice/multi-web-demo.html

外网访问需满足如下图架构:VIP 后面挂 jen-nginx 来代理前端的主应用,jen 代理后面挂静态应用 1~N

测试环境:多个前端项目可能存在下列架构方式: 域名 -> VIP -> JEN 代理(根据不同域名访问不同文件夹下的文件)-> 静态应用

2.4 后端网络组件搭配方式

后端应用从调用方式来说分为两种 (http 调用 JSF 调用)

前端应用 ---(协议 http 或者 https)--- 后端前置应用 --(协议 jsf 私有协议)----JSF 微服务应用

后端前置应用 -----jsf 微服务应用,之间的负载由消费者来决定,所以一般无须关注这两者之间的负载。

方式 1: vip 下的负载(LB 负载系统) + Nginx

方式 1 备注:

VIP 下可以直接挂载服务器,这里 Nginx 不是必须的,除非你需要 nginx 提供的功能(除了负载)。

如果你仅仅是用 nginx 来做负载,那么请去除 nginx 组件,没有必要加一这个组件,集团的 vip 的 LB 已经包含负载功能,不要加重系统的复杂性。

方式 2:容器 K8S 层面的负载

vip 提供的 LB:

vip 提供的 LB 下是直接挂机器 IP,其中多个 ip 之间没有分组的概念,并且没有探活机制

每次上线需要摘掉负载下的机器,上线完成后,再把机器挂上去

行云部署 - 高级功能 - 负载均衡 ( 容器 k8s 层面的负载 ) 优点:

有机器分组的概念: 按照机房或者 机房 + 机房集群的维度分组后,每个分组申请自己的负载均衡。

具有探活机制: 设置健康探活路径,针对负载进行探活。每次上线无须摘掉负载下的机器。

3. LB 负载系统简介

其实吧,vip 本身就是个 ip,没有多少真正的价值。vip 可以理解为是集团 LB 负载均衡的入口 ip,而 LB 负载均衡才是真正的分流组件。

vip 是系统自动分配复用的(vip 资源珍贵,系统分配的 vip 有可能复用),LB 负载均衡有两种分流规则:

1. 分流规则的实现方式

分流规则两种实现方式,默认规则、专用规则。

默认规则:面向域名,流量接入到后端集群。此为模板,可选择应用范围。

专用规则:面向 VIP,可为某 VIP 独立指定后端集群。 其中专用规则优先级高。

默认规则、专用规则两者关系:

共同点

不同点

默认规则面向域名的一个端口有且只有一条分流规则 专用规则面向 VIP 的一个端口有且只有一条分流规则

默认规则必须存在; 专用规则优先级高; 专用规则无设置时,继承默认规则指向的后端

3.1 默认规则:默认分流规则:域名 + 端口 + 集群,分流规则唯一性

备注: 系统分配的 vip 有可能复用

在默认规则中, 假设系统分配的 vip 都是 111.111.111

域名 A (www.a.jdcom)+ 域名的一个端口 port (80) 通过配置的 vip (111.111.111) 将请求转发到 后端集群 A。

域名 B (www.b.jd.com) + 域名的一个端口 port (443) 通过配置的 vip (111.111.111) 将请求转发到 后端集群 B。

3.2 专用规则:面向 vip 的一个端口有且只有 1 条分流规则

备注:(猜测 不确定):专用规则中的 vip 可能不是复用的。

备注:一个 VIP 也可以用多个端口,比如 HTTP 是 80 和 443,TCP 是 2000-2014

4. vip 和 rip 的映射关系 (重要 非常重要)

一对一:一个机房,一个 vip 对应一个 rip

一对多:一个机房,一个 vip 对应多个 rip

多对多: 多个机房,每个机房的 vip 对应 其机房下的多个 rip

4.1 vip 下挂载 rip 的约定

  1. vip(机房入口)是机房维度的,当然如果说 vip 出问题了,一般情况下就是机房出问题了,这个出现的几率会比较小。
  2. vip 是机房维度的,但是 vip 下挂哪些机器 是由研发人员决定的,因此 vip 下的机器是有可能跨机房的。但是研发人员应该 根据机房视图( 机器的机房所在地 )来对应此所在地的机房入口( vip ),应尽可能遵守 这个规定。

4.2 为什么要遵守这个约定呢?

1. 尽可能缩小问题影响的范围: 如果你 VIP 下的机器跨机房,如果 Vip 出问题,导致多个机房的机器都无法接收流量

2. 尽可能匹配断网演练的目标: 机房断网演练,估计 VIP 也不会让流量进入到下一层,如果你 vip 下挂载跨机房的 rip,直接让 机房的断网演练,变成了 跨机房演练(因为多个机房的机器不会接收到流量)

5. 内网域名解析(机房视图与机房入口说明)

  1. 内网域名解析时: vip 是根据 机房入口(目前有 廊坊 vip 马驹桥 vip 印尼 vip) 走的。
  2. 每个视图必须解析。 廊坊视图 —> 廊坊 VIP,马驹桥视图 —> 马驹桥 VIP,其他的视图 —> 选择马驹桥或者廊坊 VIP(必须指向线上可用 VIP)
  3. 为优化机房内访问,优先选择本机房 VIP。
  4. 考虑到旧的机房已下架或者正在下架,旧机房优先选择廊坊、马驹桥 VIP,国外应用优先选择国外的 VIP。

6. 公网域名解析

pop 入口 在计算机网络中,pop 表示入网点(pop),pop 位于网络企业的边缘外侧,是访问企业网络内部的进入点,外界提供的服务通过 pop 进入,这些服务包括 Internet 接入,广域连接以及电话服务(PSTN)。

pop 入口 :新应用上线时应该申请入网点(pop)处的 vip。

域名解析:

不需要 VIP: 直接填写自己的公网 IP

需要 VIP:

  1. 请提前申请 POP 入口的 VIP
  2. 解析前请线下绑定 host 测试 VIP 业务可用性
  3. 按照运营商对应的 POP 入口 VIP 进行解析

7. 总结

简单的请求过程最实用,实用的请求过程最简单。

用简单实用的搭配方式满足流量分发,不要随意搭配,增加系统的复杂性。

作者:京东保险 张江涛

来源:京东云开发者

相关推荐

如何设计一个优秀的电子商务产品详情页

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...

怎么在JS中使用Ajax进行异步请求?

大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...

中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革

前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...

前端监控 SDK 开发分享_前端监控系统 开源

一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...

Ajax 会被 fetch 取代吗?Axios 怎么办?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...

前端面试题《AJAX》_前端面试ajax考点汇总

1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...

Ajax 详细介绍_ajax

1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...

6款可替代dreamweaver的工具_替代powerdesigner的工具

dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光

时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...

不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!

Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...

2025 年 Python 爬虫四大前沿技术:从异步到 AI

作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...

最贱超级英雄《死侍》来了!_死侍超燃

死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...

停止javascript的ajax请求,取消axios请求,取消reactfetch请求

一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...