当前位置: 首页 > news >正文

面对全球化的泼天流量,出海企业如何观测多地域网络质量?

作者:俞嵩、白玙

泼天富贵背后,技术挑战接踵而至

随着全球化进程,出海、全球化成为很多 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&#xff1…...

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 中…...

OpenClaw+千问3.5-9B智能家居:自然语言控制HomeAssistant

OpenClaw千问3.5-9B智能家居:自然语言控制HomeAssistant 1. 为什么需要自然语言控制智能家居? 去年装修新房时,我安装了HomeAssistant系统来控制全屋灯光、空调和窗帘。虽然手机App能实现远程控制,但每次都要打开应用、找到对应…...

IT行业的项目经理考不考PMP证书?我劝你看完这篇在决定!

作为在 IT 圈摸爬滚打 8 年,从后端开发一路转型项目经理、带过 10 大小项目的老学长,最近总被身边技术小伙伴追问:想转 PM,必须考 PMP 吗?没证书就做不好项目管理吗?今天就用过来人的经验,跟大…...

C#编写CIP通讯源码——欧姆龙NX1P通讯DEMO

C#编写CIP通讯源码,欧姆龙NX1P通讯DEMO一、概述 本代码是基于C#语言开发的CIP(Common Industrial Protocol)通讯Demo程序,专门用于与欧姆龙NX1P2系列PLC进行工业通讯交互。程序采用.NET Framework 4.8框架开发,通过TCP…...

突破百度网盘下载限速:BaiduPCS-Go命令行客户端的3大技术突破

突破百度网盘下载限速:BaiduPCS-Go命令行客户端的3大技术突破 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go 你是否厌倦了百度网盘的龟速下载&…...

C语言回调函数在TCP客户端中的应用与实践

1. 回调函数基础概念解析回调函数是C语言中一种强大的编程机制,它允许我们将函数作为参数传递给其他函数。这种设计模式在现代编程中极为常见,特别是在事件驱动编程、异步操作和模块化设计中。1.1 回调函数的本质回调函数本质上是一个通过函数指针调用的…...

别再让MCSDK电流环PI参数拖后腿了!手把手教你从电机参数到代码配置的完整调参流程

从电机参数到代码实现:MCSDK电流环PI参数优化实战指南 在电机控制领域,电流环的性能直接影响着整个系统的响应速度、稳定性和能效表现。许多工程师在使用STM32的MCSDK进行FOC开发时,往往满足于"电机能转"的基本状态,却忽…...

零基础入门Python爬虫:借助快马AI生成你的第一个可运行爬虫脚本

今天想和大家分享一下我作为Python爬虫新手的学习经历。刚开始接触爬虫时,面对各种库和概念真的有点懵,直到发现了InsCode(快马)平台,它让我用自然语言描述需求就能生成可运行的代码,大大降低了入门门槛。 爬虫的基本原理 爬虫就像…...

102. 在控制平面主机名更改后恢复 Rancher 配置的 RKE2 集群

Environment 环境 Rancher provisioned RKE2 downstream cluster control plane node hostname changed, without removing the node from the cluster. Rancher 配置了 RKE2 下游集群控制平面节点的主机名更改,但未将该节点从集群中移除。 Procedure 程序It is …...

从模电理论到商用落地,应届生必做的无线充项目,H 桥 / LC 谐振 + QI 协议全栈详解

很多初学嵌入式的同学、正在准备秋招的电子信息类应届生,都会遇到两个核心困境:一是模电学了 H 桥、LC 谐振,只会背公式做题,根本不知道怎么在真实产品里落地;二是学完单片机只会点灯,写的都是流水账代码&a…...

零基础入门gstack:借助快马AI生成你的第一个可运行React+TypeScript项目

作为一名刚接触前端开发的新手,第一次听说gstack(ViteReactTypeScript组合)时,我完全不知道从何入手。直到发现了InsCode(快马)平台,才真正体会到"零配置"开发是什么感觉。下面记录我的学习过程,…...