面对全球化的泼天流量,出海企业如何观测多地域网络质量?
作者:俞嵩、白玙
泼天富贵背后,技术挑战接踵而至
随着全球化进程,出海、全球化成为很多 Toc 产品的必经之路,保障不同地域、不同网络环境的一致的用户体验成为全球化应用的不得不面对的问题。在跨运营商、跨地域的网络环境中,异构网络的互联互通、跨运营商协同,让技术团队不得不面对以下挑战,包括但不限于以下几个方面:
- 网络延迟与稳定性问题: 不同地区、不同运营商之间的网络连接可能存在较大的延迟,这直接影响到用户体验。跨国或跨地区的网络连接稳定性较差,容易出现丢包、断线等问题。
- 带宽成本控制: 为了保证服务质量,可能需要租用专用线路或者使用更高级别的云服务来减少延迟和提高稳定性,但这会大大增加运营成本。如何在保证服务质量的同时有效控制成本是一个难题。
- 技术支持和服务响应速度: 面对遍布世界各地的运营商,在协调快速有效的技术支持方面存在较大难度。语言障碍、时差等因素都可能导致沟通效率低下。
- 内容分发优化: 为了解决上述提到的一些问题(如延迟),很多企业会选择使用 CDN(内容分发网络)服务将静态资源缓存至离用户最近的位置。但是如何合理规划节点分布、平衡负载以及实现智能调度也是一个复杂的技术问题。
总之,想要构建与维护一个能够良好运行的跨运营商、跨地域环境下的网络体系,技术团队需要综合考量以上各个方面,并采取适当措施克服这些挑战。与此同时,设置一个合理的网络质量观测指标体系提前发现与定位网络环境中的问题。
网络监控场景设计
为了解决以上挑战,通常我们设计以下几个网络质量观测场景,满足网络质量监控与分析需求:
- Ping 探测: 监控网络连通性和延迟,确保网络路径的畅通。
- 连通性:检查目标地址的连通性,确保网络路径畅通。
- 延迟:监控网络延迟,确保网络传输速度符合预期。
适用场景:
-
网络连通性监控:确保网络路径的畅通。
-
延迟监控:监控网络延迟,优化网络性能。
-
HTTP(S)探测: 监控网站的可用性和性能,确保网站能够正常访问和响应。
- 响应时间:监控网站的响应时间,确保网站加载速度符合预期。
- 可用性:检查网站的可用性,确保网站能够正常访问。
- 内容验证:可以验证返回的内容是否符合预期,如检查特定关键词或状态码。
- 多种方法:支持 GET、POST、HEAD 等多种 HTTP 请求方法。
适用场景:
-
网站性能监控:监控网站的加载速度和响应时间。
-
内容验证:确保网站返回的内容正确无误。
-
故障检测:及时发现和处理网站故障。
-
DNS 探测: 监控域名解析可用性和性能,确保 DNS 解析正常,及时发现 DNS 劫持、DNS 污染等问题。
- 解析时延:监控域名在全球不同地域运营商的解析时延。
- 可用性:检查域名解析的可用性,确保解析请求能够成功返回正确的IP地址。
- 覆盖范围:利用全球 200+ 监控节点,支持中国主流运营商、省份和地区。
- 数据实时:实时了解 DNS 运行状况,缩短问题解决周期,减少服务停机时间。
适用场景:
-
DNS 劫持检测:及时发现和处理 DNS 劫持问题。
-
DNS 污染检测:确保 DNS 解析结果的准确性。
-
解析性能优化:优化 DNS 解析速度,提升用户体验。
-
TCP 探测: 监控 TCP 端口的可用性和性能,确保服务能够正常响应 TCP 连接请求。
- 端口可用性:检查指定端口的可用性,确保服务能够正常响应 TCP 连接。
- 响应时间:监控 TCP 连接的响应时间,确保服务响应速度符合预期。
- 健康检查:通过 TCP 连接检查服务的健康状态,及时发现和处理服务故障。
适用场景:
- 服务可用性监控:监控数据库、邮件服务器等服务的可用性。
- 性能监控:监控服务的响应时间,确保服务性能符合预期。
- 故障检测:及时发现和处理服务故障。
核心关注指标
在跨运营商、跨地域的网络环境中,技术团队可以关注以下关键指标,从而快速构建告警体系,及时发现网络问题:
- 延迟(Latency):数据包从源头到达目的地所需的时间。跨地域的网络延迟可能较高,因此需要监测延迟时间,以确保用户体验良好。
- 丢包率(Packet Loss):在传输过程中丢失的数据包的比例。高丢包率可能会导致应用性能下降,特别是对于实时通信和视频流应用。
- 带宽(Bandwidth):网络在给定时间内可以传输的数据量。了解各个链路的带宽限制,有助于进行网络规划和资源分配。
- 带宽利用率(Bandwidth Utilization):实际使用的带宽和可用带宽的比率。高利用率可能意味着网络瓶颈,需考虑扩展带宽或优化流量。
- 网络抖动(Jitter):抖动是指数据包传输延迟的波动,尤其影响实时应用(如语音和视频会议)的质量。监测和降低抖动是优化网络体验的关键。
- 连接稳定性(Connection Stability):包括连接的建立时间、保持时间以及重连次数等,确保用户在使用应用时连接稳定。
- 服务器响应时间(Server Response Time):从用户发出请求到服务器作出响应所需的时间。影响用户体验,应定期监测并优化。
- 网络安全事件(Security Incidents):监测潜在的网络攻击(如 DDoS)、数据泄露或其他安全事件,以确保整体网络安全。
- 用户访问质量(Quality of Experience, QoE):用户对于使用服务的整体满意度,包括网页加载时间、应用响应速度等。
- 运营商性能比较:监测不同运营商的性能差异,包括延迟、带宽、可靠性等,以帮助选择最佳的服务提供商。
通过关注这些指标,技术团队能更好地掌握网络环境的健康状态,及时发现并解决潜在问题,从而提升用户体验和业务运营效率。那么,我们如何快速构建跨运营商、跨地域的网络质量监控体系呢?
如何五分钟构建全球网络质量观测体系
阿里云可观测团队提供的云监控产品,为出海企业提供「网络分析与监控」能力,帮助企业快速构建全球网络服务监控体系,从而确保服务的 SLA 并持续优化性能。网络分析与监控利用拨测(Sythetic Monitoring)解决运维团队在网络性能和用户体验监控场景的核心需求。借助全球覆盖的网络探测节点,模拟用户请求对目标服务/域名/IP 等进行主动网络拨测,监控目标地址在不同地域、运营商网络环境下访问的可用性、性能和用户体验。使用拨测功能,不仅能加速故障发现与定位过程,还能帮助企业优化网络资源配置和访问链路,从而提升整体业务效率及用户体验。接下来,我们以 https://observability.cn/ 举例,详细指导如何配置拨测任务。
(一)示例背景
可观测中文社区 https://observability.cn/ ,作为一个以“运维可观测”为核心的开放、包容、分享的技术社区。因为网站访问用户来自中国、新加坡、美国等不同国家、不同地域,因此网站运维团队,在日常维护过程中非常关注几个核心问题:
- 服务器宕机:服务器无法响应请求,导致网站无法访问,影响用户体验。
- 网络延迟:网络响应时间过长,导致页面加载缓慢,用户流失。
- DNS 解析问题:DNS 配置错误或更新延迟,导致用户无法找到网站。
- 依赖服务异常:网站依赖的第三方服务(如 API、数据库等)出现故障,影响网站的正常功能。
- SSL 证书问题:SSL 证书过期或配置错误,导致安全警告,影响用户信任度。
但由于人力投入限制,无法直接对网络日志进行体系化的监控与分析。为了能够更高效地构建网络质量监控,因此使用网络监控与分析能力。
(二)实践流程
1)配置基础探测参数
登录云监控控制台,选择网络分析与监控的站点监控。在监控任务页签,单击创建任务。由于运维团队希望监控网站的可用性和性能,确保网站能够正常访问和响应。因此,我们在这里选择 PC 端的探测点,同时使用 HTTP(S) 的任务类型。在配置监测地址的同时,可以选择不同的 HTTP 请求方法,包括 GET、HEAD 和 POST。

HEAD 方法用于请求资源的头部信息,而不返回资源本身的内容。这意味着服务器会响应请求,但不会发送实际的数据体,只发送 HTTP 头部信息。POST 方法用于向指定资源提交数据,请求服务器进行处理(如提交表单或上传文件)。服务器处理完请求后会返回一个响应。GET 方法用于请求指定的资源,通常用于获取信息。请求参数附在 URL 中,作为查询字符串的一部分。
我们可以根据实际监控需求选择合适的 HTTP 请求方法。如果只需要检查资源的存在性和状态,建议使用 HEAD 方法;如果需要提交数据并获取响应,应使用 POST 方法。
2)选择所需的地域探测节点
结合自身业务以及目标用户所在区域选择不同的探测点,前文提到观测中文社区 https://observability.cn/ 的网站访问用户主要来自来自中国、新加坡、美国。因此,探测节点我们可以选择相应国家以及相关地域的探测点。
在探测点的使用过程中,我们会遇到一个问题,就是如何选择 IDC 探测点与 Last mile 探测点。IDC 探测点主要是部署在互联网数据中心的监控节点,这些探测点通常位于高速、高可用的数据中心网络环境中,能够帮助企业检测网络链路的性能和稳定性,适用于监控企业和数据中心之间的网络链路状况,以及对网络性能有较高要求的业务场景。Last Mile 探测点是部署在接近终端用户的网络环境中的监控节点这些监测点可以更好地模拟实际用户在访问业务时的网络体验,反映出用户在不同地理位置、网络环境和运营商网络下的实际访问情况。适用于监控终端用户的网络体验,帮助企业优化网络服务,提高用户满意度。我们可以根据实际监控需求选择探测点类型。

3)配置告警事件
网络监控与分析的核心关键,就是先于用户发现问题,因此配置告警至关重要。我们可以选择几个核心指标,比如可用探测点百分比、不可用探测点数量、错误码、响应时间,来配置告警。并根据自身业务特征来设定相关阈值。比如连续三个周期,可用探测点比例小于 90%,就进行电话+短信+邮件+WebHook 告警。
此外,除了自身的告警机制,我们还可以将告警事件与其他云产品进行组合使用。比如:我们可以配置相关的弹性伸缩规则,当报警发生时,会触发提前配置好的弹性伸缩的地域、弹性伸缩组和弹性伸缩规则。配置相应的日志服务,当报警发生时,会将报警信息发送至日志服务的日志库。甚至配置函数计算,当报警发生时,会将报警通知发送至函数计算进行格式处理。帮助我们更高效、更智能化的记录、处理告警以及进行相应运维动作。

4)查看监控大盘
在任务启动后,我们就可以等待探测点返回的数据。网络监控与分析提供了默认大盘供开发者使用,可以从如地域、运营商等不同维度,更直观、高效的观看相关指标的趋势。比如全球可用性和响应延时大盘、全球地域探测大盘。
全球可用性和响应延时大盘分析:

全球地域探测分析:

5)详情分析
在查看大盘或者收到告警时,我们可能会发现某单次探测结果报错或者存在问题,我们可以通过详情分析进行进一步了解,更高效的知晓业务问题在哪里。

总结
可以看到在跨运营商、跨地域的网络质量监测场景,网络监控与分析具有重要的价值。通过分布式的监测节点,从不同的网络运营商和地域对网络性能进行实时检测,确保用户在不同环境下的访问体验。通过模拟用户在不同地域和运营商下的真实访问情况,获得更准确的网络性能数据,快速识别和定位网络问题,减少因网络故障导致的业务损失。进而调整策略以提升服务质量。我们可以用于以下场景:
- 服务可用监控: 从世界各地不同城市运营商定期检查网站是否可访问,以便于提前预警可能影响业务可用性的风险。
- 域名解析监控: 确保重要域名能够被正确解析,防止因 DNS 配置错误和运营商 DNS 劫持导致的服务中断现象发生。
- 网络质量监控: 测量各地区各运营商到服务之间的网络状况,帮助决策者制定有效的链路优化和网络产品部署决策,如 CDN 测速,运营商性能分析,网络架构优化等。
- 竞品分析: 对比同类竞品网站的页面访问性能和体验,提升服务在同类行业中的访问体验。
- 页面性能监控: 使用真实浏览器访问站点页面,加载页面全资源和元素,即使发现页面性能体验问题,帮助企业优化终端用户访问体验。
- 内网服务巡检: 对云内实例资源连通性和内部服务进行高频巡检,及时发现内网可用性问题,及时止损避免故障扩散。
网络监控与分析在保证网络可靠性、优化用户体验和提升运营效率方面发挥着不可或缺的作用,对于出海企业应对复杂的网络环境和满足用户需求具有重要意义,为出海企业顺利承接泼天流量保驾护航。
点击此处立即了解完整解决方案,五分钟快速构建全球网络服务性能观测体系。
相关文章:
面对全球化的泼天流量,出海企业如何观测多地域网络质量?
作者:俞嵩、白玙 泼天富贵背后,技术挑战接踵而至 随着全球化进程,出海、全球化成为很多 Toc 产品的必经之路,保障不同地域、不同网络环境的一致的用户体验成为全球化应用的不得不面对的问题。在跨运营商、跨地域的网络环境中&am…...
『python爬虫』获取免费IP代理 搭建自己的ip代理池(保姆级图文)
目录 1. 环境搭建2. 获取爬虫ip3. 启动本地flask api接口服务4. 封装方法例子代码5. 自定义抓取免费ip的代理站规则6. 自定义规则示例总结欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 环境搭建 这边建议python3.7-3.11版本,redis …...
21.命令模式(Command Pattern)
定义 命令模式(Command Pattern) 是一种行为型设计模式,它将请求封装成一个对象,从而使您可以使用不同的请求、队列、日志请求以及支持撤销操作等功能。命令模式通过将请求(命令)封装成对象,使…...
深入探索 C++17 特征变量模板 (xxx_v)
文章目录 一、C++类型特征的前世今生二、C++17特征变量模板闪亮登场三、常见特征变量模板的实际应用(一)基本类型判断(二)指针与引用判断四、在模板元编程中的关键作用五、总结与展望在C++的持续演进中,C++17带来了许多令人眼前一亮的特性,其中特征变量模板(xxx_v)以其…...
【Day32 LeetCode】动态规划DP Ⅴ 完全背包
一、动态规划DP Ⅴ 完全背包 1、完全背包理论 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和…...
景区如何打造高质量游览观光车,提高人流量?
景区如何打造高质量游览观光车,提高人流量? 在旅游业蓬勃发展的今天,各大景区迎来了前所未有的游客热潮。尤其是在春节、五一、国庆等节假日期间,游客数量更是激增。作为景区交通的重要组成部分,游览观光车不仅承载着…...
【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题
【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题 零、起因 最近在使用Ubuntu虚拟机编译ARM程序,解压ARM的GCC后想要启动,报“没有那个文件或目录”,但是文件确实存在,环境配置也检查过了没问题,本文记…...
蓝桥杯之c++入门(六)【string(practice)】
目录 练习1:标题统计方法1:一次性读取整行字符,然后统计方法2:按照单词读取小提示: 练习2:石头剪子布练习3:密码翻译练习4:文字处理软件练习5:单词的长度练习6࿱…...
go的sync包学习
包含了sync.Mutex,sync.RWMutex,sync.Cond,sync.Map,sync.Once等demo sync.Mutex //讲解mutex import ("fmt""math/rand""sync""time" )type Toilet struct {m sync.Mutex } type Person struct {Name string }var DateTime "2…...
互联网上常见的,ip地址泛播什么意思
互联网上常见的,ip地址泛播什么意思! 泛播通过将IP地址广播发送到网络中的所有设备,使得这些设备能够接收到相关信息。例如,DHCP服务器在局域网中广播提供IP地址的请求,以便新设备能够获取一个可用的IP地址。此外&…...
Linux/C高级(精讲)----shell结构语句、shell数组
shell脚本 功能性语句 test 可测试对象三种:字符串 整数 文件属性 每种测试对象都有若干测试操作符 1)字符串的测试: s1 s2 测试两个字符串的内容是否完全一样 s1 ! s2 测试两个字符串的内容是否有差异 -z s1 测试s1 字符串的长度是…...
14.kafka开机自启动配置
要在Linux(RHEL7.7)系统中设置kafka开机自启动,可以创建一个系统服务单元文件。以下是为详细配置部署,假设你已经安装了kafka并且可以通过kafka-server-start.sh命令启动它。 1.进入/lib/systemd/system目录 命令: cd /lib/systemd/system…...
11 享元(Flyweight)模式
享元模式 1.1 分类 (对象)结构型 1.2 提出问题 做一个车管所系统,将会产生大量的车辆实体,如果每一个实例都保存自己的所有信息,将会需要大量内存,甚至导致程序崩溃。 1.3 解决方案 运用共享技术有效…...
PHP JSON操作指南
PHP JSON操作指南 概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。PHP作为一门流行的服务器端脚本语言,支持对JSON数据进行读取、编写和解析。本文将…...
【学习笔记】计算机图形学的几何数学基础知识
3D坐标系 左手系和右手系 点 x,y,z与w(齐次坐标) 矩阵 第一个下标表示行号,第二个下标表示列号。矩阵乘法不满足交换律矩阵乘法=矩阵合并一个矩阵乘以它的逆矩阵=单位矩阵变化矩阵 平移矩阵 缩放矩阵 除了可以缩放, 还可以利用缩放,在给定右手系的情况确定左手系…...
Python因为网络原因安装依赖库报错
现象 在终端运行以下指令 pip install pyautogui pillow keyboard 出现报错,终端信息如下: PS D:\code\Python> pip install pyautogui pillow keyboard Collecting pyautoguiUsing cached PyAutoGUI-0.9.54.tar.gz (61 kB)Installing build depe…...
什么是卸荷器?风力发电为什么要用卸荷器
目前市场上,那些功率低于400W的小型风力发电机,普遍缺乏刹车、稳速或限速机制。只要有足够的风力,发电机便会开始转动并产生电力。风力越强,转速就越快,这可能导致发电机因转速过高而损坏,甚至发生风机头飞…...
SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者
SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者 文章目录 目录 前言 一、启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一:利用cmd启动SQL server服务 3.方法二:利用SQL Serv…...
大数据学习之Spark分布式计算框架RDD、内核进阶
一.RDD 28.RDD_为什么需要RDD 29.RDD_定义 30.RDD_五大特性总述 31.RDD_五大特性1 32.RDD_五大特性2 33.RDD_五大特性3 34.RDD_五大特性4 35.RDD_五大特性5 36.RDD_五大特性总结 37.RDD_创建概述 38.RDD_并行化创建 演示代码: // 获取当前 RDD 的分区数 Since ( …...
Unity 加载OSGB(webgl直接加载,无需转换格式!)
Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据,有很多的插件方便好用,但是发布到网页端均失败,因为webgl 的限制,IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
