流分发与路由#

概述#

流分发与路由 (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}