流分发与路由#
概述#
流分发与路由 (SDR) 由两个组件组成:工作负载分发代理和工作负载路由代理
工作负载分发代理
检索由视频存储工具包 (VST) 发起的流事件
编译工作负载,并通过调用其 Webhook 将其均匀分发到底层微服务
将分发映射写入缓存
工作负载路由代理
拦截来自上游调用者的 HTTP 或 GPRC 调用,并从请求标头中提取流标识符
使用流标识符查找分发映射
将请求路由到微服务的特定处理副本
协调器
当流变得陈旧时,重置底层微服务
经验法则是,如果微服务满足以下两个条件,则应与 SDR 集成
当 VST 发生流事件时,需要收到通知
它是一个有状态的服务,需要将传入请求一致地路由到同一处理副本。
目前,以下服务与 SDR 集成:chat-controller、anim-graph 和 ds-visionai 以及 renderer
配置代理#
如有必要,可以在安装时将参数传递给代理。默认参数足以在单节点上运行应用程序。
参数 |
描述 |
---|---|
WDM_WL_SPEC |
用于状态管理的数据缓存文件 |
WDM_WL_THRESHOLD |
一个 Pod 可以管理的最大传感器流数量 |
WDM_CONSUMER_GRP_ID |
用于监听来自 Redis 消息的唯一消费者组 ID |
WDM_WL_OBJECT_NAME |
由代理管理的工作负载对象的名称(StatefulSet 名称) |
WDM_MAX_REPLICAS |
代理水平扩展 Pod 的最大副本数。 |
WDM_MSG_KEY |
Redis 发布事件消息的主题或键 |
WDM_WL_REDIS_SERVER |
Redis 服务器的地址 |
WDM_WL_REDIS_PORT |
Redis 服务器端口号 |
WDM_WL_CONFIG_PORT |
用于发送从 VST 收到的事件消息的 REST API 端口 |
WDM_WL_ADD_URL |
用于路由“添加”事件消息的 REST URL 端点 |
WDM_WL_DELETE_URL |
用于路由“删除”事件消息的 REST URL 端点 |
WDM_TARGET_PORT_MAPPING |
描述用于发送请求的端口映射的 JSON 字符串。例如:{“default”: 8011, “grpc”: 50064} |