Skip to content

SDK 接入服务(yidun-irisk-sdk-server) ​

SDK 与风机之间的数据管道:负责「收进来、存起来、发下去、查得到」,不做判定。

1. 业务定位 ​

四件事:

能力接口说明
数据上报/v4/{platform}/up、/v4/j/up、/v4/c/up设备/行为/点击/日志等采集数据
配置下发/v4/c、/v4/j/c、/v4/o/c特征开关、采集任务、so/符号文件
数据回放Dubbo UploadQueryService风控中心与查询方按需回放采集数据
管理后台console/api项目级管理

判定由 yidun-intelligent-risk 完成,本服务只保证数据完整与配置可达。

2. 架构与模块划分 ​

模块类型职责
commonjar错误码 ResultStatus、token/平台常量、加解密工具、protobuf 生成类
domainjar领域模型、缓存模型(产品/采集任务/特征)
service/basejarHBase/Kafka/NOS/Redis 组件、协议与解析 core
service/businessjar各平台采集数据转换、配置与缓存服务、大字段操作
facade/http-uploadapp上报接收(8 个控制器)
facade/http-configureapp配置下发(15+ 策略)
facade/dubbo-api + facade/dubbo-queryDubbo回放查询契约与实现
console/apiapp管理后台
mqappKafka 消费落库

3. 上报链路 ​

处理器链的顺序是协议的一部分,改动顺序会改变校验与解密的先后关系。

4. 配置下发链路 ​

5. 存储与中间件 ​

组件用途
Kafka上报数据投递,消费落库
HBase采集明细宽表
Redis短时回放数据、配置缓存
NOS大字段(超出单条限制的采集内容)
MySQL项目管理数据

6. 错误码与协议约定 ​

约定说明
HTTP 状态码恒为 200错误通过响应体 code / msg 表达
错误码唯一来源本地 com.netease.yidun.common.enums.ResultStatus,禁止引用其他包的同名类
错误码分段1xxx 参数、2xxx 鉴权、3xxx 路由、4xxx 业务、5xxx 系统
Upload TokenBase64 32 字符,解码 24 字节 = 签名(8) + 混合数据(16),有效期 1 天
双协议Proto 与 JSON 并存,Proto 解析失败需优雅降级到 JSON

7. 设计模式与扩展点 ​

扩展点位置说明
处理器链SdkUploadProcessorChain + UpHandler 实现新增校验/处理环节
平台转换Android/Ios/Pc/Web/Applet/Harmony/Linux CollectConvertServiceImpl新增端类型
配置策略AbstractConfigStrategy 子类新增下发场景
大字段CollectLargeFieldOpApi大字段切分与 NOS 存取

8. 上下游依赖 ​

方向模块说明
上游各端 SDKHTTP 上报与配置拉取
上游(配置来源)intelligent-risk cache Dubbo产品/配置/采集任务缓存
上游(事件)mplatform-event配置刷新事件
下游intelligent-risk通过 UploadQueryService 回放采集数据

9. 工程约束与变更红线 ​

  • 主链路禁止同步落库,必须投递 Kafka。
  • 错误码不得跨包引用,且新增错误码要同步更新接口文档。
  • 外部依赖(Redis/Apollo)失败不阻断启动,降级运行。
  • Sentinel fallback 方法签名必须与原方法一致,否则降级不生效。
  • 敏感配置不入库不入仓(数据库密码、密钥)。

10. 关键代码索引 ​

主题路径说明
上报入口yidun-irisk-sdk-server/facade/http-upload/src/main/java/.../controller/risk/AndroidSdkRiskUploadController.javaAndroid 上报
处理器链yidun-irisk-sdk-server/service/business/src/main/java/.../processor/SdkUploadProcessorChain.java校验→处理→存储
上报存储yidun-irisk-sdk-server/service/business/src/main/java/.../storage/UpDataKafkaStorage.java写 Kafka
配置下发yidun-irisk-sdk-server/facade/http-configure/src/main/java/.../controller/ConfigDeliveryController.java配置入口
配置策略yidun-irisk-sdk-server/facade/http-configure/src/main/java/.../strategy/AbstractConfigStrategy.java策略路由
回放查询yidun-irisk-sdk-server/facade/dubbo-query/src/main/java/.../provider/UploadQueryServiceImpl.javaRedis → HBase
MQ 落库yidun-irisk-sdk-server/mq/src/main/java/.../consumer/UnionDataConsumer.javaKafka 消费

11. 排查要点 ​

现象定位结论
SDK 上报大量失败看响应体 code 分段1xxx 参数/协议、2xxx token、5xxx 服务内部
上报成功但回放查不到看 Kafka 消费与 HBase 写入异步落库延迟,短时可查 Redis
配置拉取为空看 productCode + platform + version 三者版本不匹配或缓存未刷新
部分设备数据缺失看大字段切分与 NOS 对象大字段写入失败
Proto 解析异常但业务正常看是否走了 JSON 降级属设计内的降级行为
最近更新

内部资料,请勿外传