bolt部署

了解部署及其生命周期——概念和最佳实践以加深理解。

🗺️ 协排

使用我们的云原生边缘计算方法,在几秒钟内启动新服务器以满足容量需求。我们将服务器视为 牲畜而非宠物arrow-up-right ——完全替换故障实例,而不是逐个人工维护。

circle-info

您的编排选择将 影响您的运维成本、服务器成本和可扩展性.

circle-check

为了全面了解所有利弊,让我们比较各种编排方法。

按比赛绑定

为现代工作室提供的黄金标准,提供 最简便的集成与最佳成本效率.

👍 优点

  • 最佳成本效率——按分钟实时扩展以满足玩家需求。

  • 由于无区域托管且 Edgegap 自动化 99% 的任务,运维成本最低。

  • 由于 Edgegap 公有云基础设施拥有 615+ 站点,延迟最低。

  • 在意外流量激增时具有最快的扩展速度(突发能力)。

  • 最高标准的安全性和防作弊(服务器权威)。

  • 意外服务器崩溃对玩家的影响最小,仅影响单场比赛。

👎 缺点

  • 采用新的编排思维模型最初需要一些上手努力。

  • 运行超过 24 小时的服务器将被自动终止。

🧩 最适合

  • 对延迟敏感的游戏—— 当网络代码优化无法克服高延迟时:

    • 第一人称射击、格斗游戏、VR 与 XR(虚拟与扩展现实)等,…

  • 具有 通过设计对比赛时长有上限的,

    • 大逃杀, PvPvE、合作射击、MOBA、体育游戏、ARPG 与地牢爬行者等,…

🔎 可发现性

circle-info

Edgegap 会根据每个区域的玩家活动自动上下扩展所有 615+ 服务器位置。为成功做好准备——无缝地 在 60 分钟内扩展到 1400 万并发用户arrow-up-right.

区域待命

传统模式,适用于 具有用户生成内容的持久世界和社交型 MMO 游戏.

👍 优点

  • 熟悉且易于理解,老派且经验丰富的做法。

  • 最高标准的安全性和防作弊(服务器权威)。

  • 基于月度承诺的成本易于预测。

👎 缺点

  • 较高的托管成本——每个区域需要一个或多个空闲的待命服务器(突发容量)。

  • 较高的运维成本——按区域重复扩展、运营和维护工作。

  • 玩家基数较小的区域由于需要加入较远的服务器而体验到较高延迟。

🧩 最适合

  • 持久世界,其用户生成内容即使在玩家离线时也存储于服务器上。

    • MMO、有基地建设或对象放置的沙盒、提取射手等,...

  • 容忍延迟的游戏—— 当服务器权威的实时物理模拟不是必需时:

    • 移动游戏、合作游戏、集换式卡牌/卡牌对战、回合制策略等,…

  • 异步多人, 服务器崩溃对玩家体验影响最小的场景:

    • 与幽灵比拼、掠夺敌方基地、基于计时器的建造/耕作类游戏等,…

  • 初始化耗时较长的应用——当准备服务器需要几分钟时。

🔎 可发现性

circle-info

参见 托管集群 用于 在 Edgegap 上自托管您的微服务和后端服务

点对点

将开发工作从 专用服务器 转向 用于非竞争性游戏的中继网络代码.

相关主题:监听服务器、玩家主机权威、NAT 打洞。

👍 优点

  • 最低托管成本,仅需要中继服务器来解决 NAT 打洞问题。

  • 最低运维成本——仅需维护客户端构建和分发渠道。

  • 意外服务器崩溃对玩家的影响最小,仅影响单场比赛。

  • 易于实现且原型制作快速,无需任何后端开发。

👎 缺点

  • 点对点网络代码增加开发工作量,需要并发编程技能。

  • 最差的延迟表现且对不利的网络条件(例如移动网络)最敏感。

  • 安全性最弱,易受中间人攻击和会话劫持的影响。

  • 如果未实现自定义主机迁移,主机离开时有断开会话的风险。

🧩 最适合

  • 合作与休闲游戏—— 当作弊不会削弱乐趣或破坏游戏时,

    • 儿童游戏、探索游戏、冒险类等,…

🔎 可发现性

circle-check

📍 服务器放置

无论您选择哪种编排方法,为一组玩家选择合适的服务器位置对于确保最佳延迟和最优玩家体验都至关重要。了解不同的服务器放置策略,以及它们如何影响您的玩家。

circle-info

您的服务器放置策略将 影响玩家体验、留存率以及您的游戏评价.

circle-check
circle-info

参见 部署 转向 实时分析服务器放置,以规模化方式。

服务器评分

服务器评分策略使用 Edgegap 的专利方法, 为每场比赛单独优化服务器放置。执行非侵入性遥测以近似每位玩家到我们服务器位置的网络接近度,并选择能提供最佳:

  • 响应性 ——为所有玩家平均提供最低延迟,

  • 公平性 ——为所有玩家提供平衡且公平的延迟。

circle-check

不可响应的放置 ——服务器位置较远,所有玩家延迟较高:

不公平的放置 ——延迟不均衡,某位玩家处于劣势:

良好放置示例 ——为所有玩家提供响应迅速且公平的延迟:

circle-info

该策略 对托管彼此相距较远的一组玩家尤其有效 (北美对欧洲,或西海岸对东海岸),这在预先组队的大厅中经常发生。

地理定位

或者, 提供玩家的经纬度坐标或首选服务器位置的坐标 ,而不是利用自动遥测。此方法需要额外的客户端侧地理查询实现,完全依赖游戏开发者的解决方案。

circle-exclamation
circle-check

区域锁定

服务器可以使用粗略泛化的区域参数来放置,方式为:

  • 基于玩家元数据(玩家账户数据库)自动为玩家选择,或

  • 由玩家在匹配时选择,允许在客户端-服务器延迟高的情况下放置。

triangle-exclamation
circle-check

🟢 连接质量

有些游戏(和有些玩家)对延迟或卡顿更为敏感。尽管玩家报告是指示大规模事件或回归错误的良好指标, 玩家可能缺乏对网络概念的深入理解 并且容易将责任归咎于工作室、网络代码或服务器。

某些问题的根本原因可能对玩家不可见,因此工作室与托管提供商的协作可能至关重要。 Edgegap 的优先事项始终是提供尽可能最佳的服务。

如果您收到大量玩家报告、经历大范围中断或反复出现问题,请通过我们平台中的支持工单立即与我们联系。

低延迟

玩家延迟由在以下各项之间传输数据的延迟组合构成:

  • 物理设备—— 物理信号在 互联网网络拓扑arrow-up-right,

  • 主机到主机 ——由协议、传输和安全措施导致,

  • 进程到进程 ——由在客户端/服务器中对数据的(拆箱)和处理导致。

Edgegap 通过将服务器放置得更接近您的玩家来减少物理延迟,以实现更短的响应时间和更少的网络跳数。凭借覆盖 17 家云与裸金属提供商的站点,您将获得 面向全球玩家的行业领先延迟表现.

服务器和互联网的全球覆盖(不仅限于 Edgegap)因以下因素而受限:

  • 基础设施可用性 ——特定区域的互联网连接质量可能不足,

  • 自然因素 ——高度复杂的服务器机架需要相对稳定的环境。

高可用性

全球各地不同位置的服务器可用性会随时间变化,一天内会多次变动。Edgegap 会自动 按需扩展/缩减 位置 ,并考虑到:突发流量

  • ——在 15 分钟周期内的部署, vCPU 要求

  • ——每次部署更多的 vCPU 会增加特定位置的整体需求, 供应商提供

  • ——某些偏远地点可用的供应商选项较少, 机器可用性

  • ——某些地点可能只提供 4 vCPU 或 8 vCPU 的机器, 工作室请求

  • 用于测试、质量保证、抢先体验、封闭测试或比赛。 所有应用的部署请求会被合并以评估位置需求。默认情况下所有组织具有相同的分配优先级,且存在

为需要特定硬件或位置的企业客户添加私有服务器池的可能性 .

circle-check

玩家问题可能源于服务器错误或提供商事件,但也可能来自第三方,例如本地 ISP、游戏服务、底层库的错误、基础设施提供商或其他来源。

在排查玩家报告或事件时,请考虑以下因素:

匹配质量

  • ——玩家应彼此接近(同一区域)以便 取得最佳效果: 部署 参见

  • 本地互联网服务提供商(ISP)可能在短时间内解决某一事件,

    • 某些区域(例如中国、俄罗斯)可能因本地化制裁而受到限制,

    • 缓存级别

  • ——Edgegap 将优先在已缓存的位置进行快速部署: 启用缓存以在几秒内部署您的服务器

  • ——由于缓慢且耗时的初始化流程,部署可能失败: 要增加超时时间,

    • 应用与版本 将初始化步骤延后到绝对必要时再执行,

    • 服务器镜像或集成问题

  • 在客户端比赛历史 UI 中显示部署 ID.

circle-check
circle-info

🔄 部署生命周期

Edgegap 的部署会经历若干生命周期阶段,由部署状态表示。

1. 启动部署

一个用于

测试目的的 部署可以使用以下方式启动: - 用于 Unreal Engine 项目的 Docker 扩展或插件,

测试目的的 应使用以下方式启动: - 在有其他玩家时按需查找并启动服务器(

circle-check
circle-info

进行测试时,您可以覆盖默认 Dockerfile ——服务器对服务器的自定义集成(自定义扩展)。arrow-up-rightCMD 以使用自定义命令。 2. 部署中

一旦启动部署,我们的系统会快速连续执行若干步骤:

遥测——我们正在测量可用数据中心到每位玩家的网络响应性,

  • 部署——我们正在保留容量并准备启动您的服务器容器,

  • 容器启动——我们正在启动容器、安装依赖并初始化,

  • 后处理——我们正在添加日志存储、监控并完成部署。

  • 请求过多 429

circle-exclamation

您的容器已完全初始化,服务器正在启动。在几秒到一分钟内,服务器可能仍在初始化,直到您的游戏引擎(或自定义运行时)完全准备好接受玩家连接之前可能不会响应玩家请求。

一旦部署就绪,

circle-check

您的部署可能在任何时间因意外原因进入错误状态。在测试集成或测试新的服务器构建时,这种情况更有可能发生。

错误状态的部署不会收取费用,这些部署会在 24 小时后自动停止。

故障排查步骤:

使用

circle-check

我们不会在未收到您指示的情况下停止您的服务器

,以避免对玩家体验造成负面影响。您的部署可能因以下原因被停止:通过

circle-info

承载您部署的主机通过调度操作被删除。 一旦部署被停止, 我们会触发优雅终止 通过发送 SIGTERM 信号给您的主进程,允许短时间的终止期。期限一到,便会发送 SIGKILL

信号以停止部署。

👀 可观测性

可发现性

允许游戏服务器与第三方互操作并获取运营洞察。一旦就绪,部署会被分配一个 URL(arrow-up-rightfqdn

circle-check
circle-info

部署标签以便轻松标记您的部署 来自您的游戏服务器的出站流量(到客户端或后端)从不被阻止

或过滤。

Websockets (WS) 与 安全 Websockets (WSS)

  • 要在 Edgegap 上使用基于 websocket 的网络代码,您有两种选择:托管证书

    • ,1 分钟内即可设置,无需编写任何代码: 应用与版本 转向 配置您的

    • 使用 Websocket (WS) 并启用 TLS 升级, 使用 Edgegap URL 连接客户端(例如:)

  • https://5fa53fa00a57.pr.edgegap.net/自管理证书

将玩家重新匹配到新的部署

服务器状态可能丢失

circle-info

参见 以获取我们的建议, 在 C++ 中获取环境变量 来获取变量值。

应用版本变量

匹配器变量

circle-exclamation

自定义变量

为每个部署定义最多 20 个自定义变量,每个变量可包含最多 4KB 的字符串数据。

  • 避免使用保留名称(如下),否则您的自定义变量将被覆盖! 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 标识符 .

    • ARBITRIUM_REQUEST_ID

    • ——例如: f68e011bfb01.

  • 唯一的部署 ID,也称为请求 ID。用于检索更多信息。 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 部署 URL 始终具有格式 .

    • {ARBITRIUM_REQUEST_ID}.pr.edgegap.net

  • ARBITRIUM_HOST_ID 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 162.254.141.66 .

    • alpha-north-america-70364ef8

  • 承载您部署的机器的唯一标识符,与其他部署共享。 通过读取 Edgegap 注入到服务器的变量来访问重要信息: ARBITRIUM_PUBLIC_IP .

tag1,tag2

  • 以逗号分隔的用户定义部署标签, 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 2000 便于搜索和过滤

  • 资源规格 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 256ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY

  • ,处理器频率(MHz)。 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 512ARBITRIUM_DEPLOYMENT_VCPU_UNITS

,分配的 vCPU 单位(1024 = 1 vCPU)。

  • ARBITRIUM_DEPLOYMENT_MEMORY_MB 通过读取 Edgegap 注入到服务器的变量来访问重要信息: ,分配的内存(MB)(1024 = 1 GB)。.

    • 生命周期管理 ARBITRIUM_DELETE_URL.

    • https://api.edgegap.com/v1/self/stop/9f511e17/660 可从部署内调用, 部署将被优雅地停止 需要唯一的一次性 ARBITRIUM_DELETE_TOKEN

  • 可从部署内调用, 通过读取 Edgegap 注入到服务器的变量来访问重要信息: .

  • Authorization 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 请求头中。.

    • 7df4cd933df87084b34ae80d8abde293

    • ARBITRIUM_CONTEXT_URL https://api.edgegap.com/v1/context/9170f5211e17/17 部署将被优雅地停止 需要唯一的一次性 ARBITRIUM_DELETE_TOKEN

  • https://api.edgegap.com/v1/context/9170f5211e17/17 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 仅可从部署内调用,返回更多部署详情。.

可发现性

  • 需要唯一的 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 7777 ARBITRIUM_CONTEXT_TOKEN

  • dfaf50b9333b9ee07b22ed247e4a17e6 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 31504 ARBITRIUM_PORT_GAMEPORT_INTERNAL

    • ,服务器监听的内部端口。

  • ARBITRIUM_PORT_GAMEPORT_EXTERNAL 通过读取 Edgegap 注入到服务器的变量来访问重要信息: ,客户端连接的外部端口。 出于安全考虑,外部端口值会针对每次部署随机化。

circle-check
  • @Super Port! 通过读取 Edgegap 注入到服务器的变量来访问重要信息: ARBITRIUM_PORT_SUPER_PORT_INTERNAL Ping 信标.

  • ARBITRIUM_BEACON_ENABLED 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 139.177.198.69 true

  • ,如果部署在运行以下服务的私有机群上 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 30199ARBITRIUM_HOST_BEACON_PUBLIC_IP

  • ,最近的信标的公网 IP。 通过读取 Edgegap 注入到服务器的变量来访问重要信息: 30456ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNAL

,用于通过 UDP 进行延迟测量。

circle-info

ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNAL ,用于通过 TCP 进行延迟测量。结构化信息(作为字符串的 JSON)

chevron-right环境变量以字符串化的 JSON 存储hashtag
chevron-right"timezone": "东部时间","latitude": 45.513707,hashtag

仪表盘监控

我们的 仪表盘arrow-up-right 提供用于监控服务器可扩展性并协助运营的实用工具。

分析

circle-check

🌟 升级到按需付费等级arrow-up-right 以解锁详细的服务器性能指标和洞察:

  • 通用洞察: 监控带有每个版本实时服务器数量的发布以及资源使用概览,

  • CPU 洞察: 排查因处理器密集型操作导致的服务器延迟,

  • 内存洞察: 缓解因超出分配内存导致的服务器重启,

  • 网络洞察: 检测低效的网络模式并优化网络代码。

部署地图

circle-check

在地图上预览部署位置、可用位置和估计玩家位置:

部署平衡点

circle-check

预览部署平衡点热力图并按以下内容筛选: 应用与版本。平衡点是相对于给定部署中每个玩家具有相等网络接近性的近似位置:

circle-exclamation

部署日志

circle-check

部署日志显示有关以下内容的信息 部署:

容器日志

circle-check

在出现问题或调试时检查您的游戏服务器日志:

circle-exclamation

容器指标

circle-check

查看容器指标(处理器、内存、网络)以:

  • 在发生时识别常见连接问题 部署,

  • 检测导致资源使用峰值的低效实现模式,

  • 在特定场景中定位低效的资源使用,

  • 在优化过程中验证服务器资源使用的变化,

  • 基准测试您的服务器初始化资源消耗和时长。

历史指标以 1 分钟时间周期显示值平均,在免费等级可用。

🌟 升级到按需付费等级arrow-up-right 以解锁具有 1 秒时间间隔的精确指标。

circle-info

以规划发布、估算上线流量并为成功做准备。envelope 在发布前请求大规模发布的实时托管支持。

上下文与状态

可以以 JSON 格式检索附加的部署信息:

circle-info

上下文 API(来自部署)需要上下文 API 令牌,而状态 API 使用您的 Edgegap 令牌。

circle-exclamation

筛选部署

要在所有部署中快速搜索,您可以 使用我们的仪表盘arrow-up-right:

使用 API 列出部署arrow-up-right 并通过后端集成应用筛选:

部署属性
运算符
示例值

等于(eq) 使用 不等于(neq)

"就绪" 使用 "错误"

等于(eq)

"7e709a0d8efd"

部署将被优雅地停止 使用 不在(nin)

[ "7e709a0d8efd", "4ba353100b4b" ]

等于(eq) 使用 不等于(neq)

"tagA"

部署将被优雅地停止 使用 不在(nin)

[ "tagA", "tagB" ]

等于(eq) 使用 小于等于(lte) 使用 大于等于(gte)

等于(eq) 使用 不等于(neq)

"my-app"

部署将被优雅地停止 使用 不在(nin)

[ "my-app", "my-other-app" ]

等于(eq) 使用 不等于(neq)

"1.0.0"

部署将被优雅地停止 使用 不在(nin)

[ "1.0.0", "prod" ]

等于(eq)

使用 false

等于(eq) 使用 不等于(neq) 使用

小于(lt) 使用 小于等于(lte) 使用

大于(gt) 使用 大于等于(gte)

5

circle-info

每个属性在单个请求中最多可以有 1 个过滤运算符。参见 API 参考 以了解更多。

按请求中出现的顺序按多个字段对结果进行排序:

部署属性
排序方式

升序(asc) 使用 降序(desc)

升序(asc) 使用 降序(desc)

示例过滤查询:

chevron-right列出 错误中的部署 以进行故障排除和删除。hashtag

编码后的 URL:

格式化的 JSON 查询:

chevron-right列出 应用版本过时的部署 以确认发布已完成。hashtag

编码后的 URL:

格式化的 JSON 查询:

circle-check

Webhooks 与回调(Postbacks)

通过在您的部署 API 请求中指定 webhook URL,在您的游戏后端接收有关以下内容的简单 HTTP 通知, 部署 通过在您的 部署 API 请求中指定 webhook URLarrow-up-right。可用于:

  • 就绪时:部署容器 已成功启动 (服务器在此之后开始初始化),

  • 出错时:部署无法启动并发生了 部署

  • 终止时: 部署 并且游戏服务器不再可访问。

就绪和错误 webhook 将永远不会针对同一部署同时触发。

chevron-right示例 Webhook 有效载荷hashtag
circle-exclamation
circle-info

Webhooks 观察部署生命周期,但无法获知您的场景/关卡初始化状态。要观察场景/关卡的加载进度,请在您的游戏服务器中实现自定义 webhook。

🚨 故障排除

在对部署进行故障排除时:

  1. 验证您的日志中是否没有错误, 部署 以获取我们的建议, 部署,

  2. 在本地运行服务器以排除集成错误,

  3. 查看本页上的故障排除步骤,

  4. 通过以下方式与我们联系 社区 Discordarrow-up-right 并附上您的部署 ID。

circle-info

参见 部署 以获取我们关于处理玩家社区反馈的建议。

chevron-right无法将客户端连接到服务器 - 请求超时。, 请求超时 , ConnectionFailed ,或 端口验证失败.hashtag
chevron-right如果服务器进程因异常崩溃,我们的系统将尝试自动重启服务器。请考虑在本地测试您的服务器以发现根本原因。hashtag
chevron-right免费等级部署有 60 分钟的时间限制,请考虑升级您的账户。hashtag
  • 所有部署在运行 24 小时后将根据我们的服务器清理策略被终止,以进行基础设施维护,并防止在部署未正确关闭时产生意外费用。对于长期运行的服务器,请考虑使用

  • 私有舰队 我的部署已就绪,但在随后几分钟内我无法连接。 持久化.

  • 参见 部署 我的部署在 X 分钟后自动停止。

chevron-right一旦部署就绪,您的游戏引擎初始化开始。此过程可能需要数秒到数分钟不等,在此期间服务器不接受玩家连接。hashtag
  • 考虑优化服务器初始化以缩短此时间。

  • 游戏客户端应以 1 秒间隔重试连接,持续有限的时间(取决于您的初始化持续时间),之后返回到匹配流程。

  • 考虑添加加载场景,以便服务器可以在客户端同时执行初始化(以及在 Unreal 引擎中进行场景切换)并同步双方状态。

  • 我的 Meta Quest 设备抛出

chevron-rightHTTP 0:无法解析目标主机 当为 Android 目标构建 Unity 应用时,Internet 访问权限可能会从输出的 APK 客户端构建工件中自动删除。 .hashtag
  • 在以下位置重新添加权限(之后需要重新构建客户端):

  • 项目设置 / OpenXR /

    • Meta Quest 支持 / 强制移除 Internet 权限(取消勾选)。 ⚙️ 玩家设置 / Internet Access(设置为需要)。

    • 如果玩家离开我的部署会发生什么?

chevron-right默认情况下,服务器不会拒绝玩家连接。玩家认证由您的开发者负责,因为可以使用许多不同的方法和玩家认证提供商。hashtag
chevron-right这可能不是问题,因为游戏引擎在服务器初始化期间往往会执行 CPU 密集型操作。如果在部署开始后 2-3 分钟内 CPU 使用率仍未下降,您可能需要优化服务器或增加应用版本资源。hashtag
  • 降低 tick 速率可以影响 CPU 使用,因为服务器执行的消息操作减少。

  • 在免费等级中,您受限于 1.5 vCPU 和 3GB 内存(RAM)。

  • 中检查日志。 如果您使用的是 Mirror 网络代码,您需要在arrow-up-right 中选择 NetworkManager ,重新构建、推送并重新部署您的服务器。

  • 如果您使用的是 FishNet 网络代码,您需要在 中启用“Start on Headless”arrow-up-right 在您的 ServerManager,重新构建、推送并重新部署您的服务器。

  • 您可以在创建新应用版本时增加分配的资源。您可以在我们的仪表盘中复制您的应用版本并根据需要调整这些值,而无需重新构建服务器或镜像。

  • 我的部署反复重启并显示错误 `OOM kill` 。

chevron-right此行为是由超出分配内存量引起的。考虑通过对象池、压缩或在场景中移除不需要的对象来优化内存使用。hashtag
  • 确保您的项目正在加载包含您的默认场景,

  • 并且该场景已包含在 Unity 的构建设置中。 NetworkManager 有时,我服务器的内存(RAM)使用会飙升到很高,这是否是问题?

  • 您可以在创建新应用版本时增加分配的资源。您可以在我们的仪表盘中复制您的应用版本并根据需要调整这些值,而无需重新构建服务器或镜像。

  • 我的部署反复重启并显示错误 `OOM kill` 。

chevron-right只要您保持在分配的应用版本内存额度内,这就不是问题。hashtag
  • 超出分配的应用版本内存额度将导致 `OOM kill`(见上文)。

  • 其他在同一台机器上运行的服务器会影响我的服务器性能吗?

chevron-right不会,我们的平台确保分配的资源不会被其他工作室或共享基础设施上的其他服务器使用。在 Edgegap 平台上,没有嘈杂的邻居。}'}hashtag
  • No, our platform ensures that allocated resources will not be used by other studios, or other servers on shared infrastructure. With Edgegap, there are no noisy neighbors.

最后更新于

这有帮助吗?