动态加速

最近更新时间:2026-04-16 17:08:41

我的收藏
SDK 提供一系列网络测量接口和策略回调接口,业务通过设置测量阈值,达到按需加速的目的,同时 SDK 也提供加速兜底策略。当加速出现了重大异常,如加速后出现断网,时延过大,加速负优化或加速效果远不及预期,SDK 会主动关闭加速和测速,让业务流量回源,防止因加速异常影响业务正常使用。
注意:
当 SDK 触发逃生 onAccException 回调后,会直接销毁加速通道,若业务使用 SOCKS5 代理发起的加速,业务需将相应的网络请求切回直连(不再使用代理)。

接入流程

1. 初始化与注册阶段
SDK 初始化:首先调用 setDataKey 完成基础配置。
接口注册:通过 register 接口向服务器发起注册。
注册失败:直接进入“结束”流程。
注册成功:通过回调 onRegisterSuccess 进入下一阶段。
2. 测速与评估阶段
发起测速:注册监听事件后,设置 RTT(延迟)、丢包率、抖动等阈值,通过 startMeasure 开始评估当前网络质量。
触发加速:当网络环境满足预设的加速条件时,触发 onStartMpAcc 回调。
3. 加速配置与执行阶段
发起加速:配置加速模式、应用白名单及路由表,随后由业务侧执行 startAcc。
二次校验:系统会进行权限、网络条件及设备兼容性的最终核验。
校验未通过:返回加速失败 onAccFail。
校验通过:建立 QUIC 通道,实现流量切流并加速,返回 onAccSuccess。
4. 效果监测与动态调整阶段
加速开启后,SDK 会持续实时监测网络效果:
正常运行:持续加速。
效果不佳:如出现长期无优化、单网卡或无网络情况,建议停止加速(由业务决定是否调用 onStopMpAcc)。
5. 异常处理与退出阶段
异常逃生:若出现“负优化”或网关异常,SDK 会触发 onAccException 并主动关闭加速与测速。
结束:所有路径最终导向流程结束。

流程图





示例代码

private MeasureCallback measureCallback = new MeasureCallbackImpl();
private void initMpAcc() {
//腾讯云申请的datakey需传入
MpAccClient.setDataKey("test-123456", "*");
mpAccClient = MpAccClient.getInstance(this);
}
private void startMeasure() throws MpAccSDKException {
//发起测量回调监听
mpAccClient.registerMeasureCallback(measureCallback);
MeasureConfig measureConfig = new MeasureConfig();
//设置测量配置阈值
measureConfig.setJitter(15)
.setLoss(5)
.setRTT(60)
.setTime(8000)
.setQuickTime(2000)
.setQuickRtt(80)
.setInterval(1000)
.setMode(2);
//开始网络测量
mpAccClient.startMeasure(measureConfig);
}
private void stopMeasure() throws MpAccSDKException {
//注销网络测量监听
mpAccClient.unregisterMeasureCallback(measureCallback);
//停止网络测量
mpAccClient.stopMeasure();
}
class MeasureCallbackImpl implements MeasureCallback {
@Override
public void onStartMpAcc(int code, int links) {
//发起加速,参考各个模式加速示例代码
startAcc();
}
@Override
public void onStopMpAcc(int code) {
//关闭加速,参考关闭加速示例代码
stopAcc();
}
@Override
public void onNoPolicy(int code) {
//当前无有效加速策略
}
@Override
public void onAccException(int code) {
//加速异常,SDK触发逃生(兜底)
}
}