-
Notifications
You must be signed in to change notification settings - Fork 78
路由表
dylanxu edited this page Mar 3, 2020
·
10 revisions
- 如图所示,整个数据流由 Guest方的业务系统向本方的proxy发起inference request在线预测接口开始。
- Guest proxy收到inference request后,(如果是http请求,proxy会先将http请求的数据转化成grpc),查询到本方serving-server的路由。这里,如果启用zk服务治理,必须proxy和serving-server都启用(application.properties中useZkRouter=true),服务启动都会在ZK中注册相应的内容,serving-proxy组件转发时会优先从ZK中去查找目标地址,没有找到目标地址时,则会从路由表(route_table.json)中查找,未启动ZK服务治理时,直接查询路由表。
- Guest proxy 通过grpc 把请求发到Guest serving-server。
- Guest serving-server 做本地推理,然后通过 Guest proxy 请求host方推理。
- Guest proxy 查询本地路由表,把 Guest serving-server 的推理请求 发到host方的proxy。
- Host proxy 把 Guest的推理请求路由到 Host的 serving-server,这里的路由规则与Guest类似(步骤2),基于zk或本地路由表。
- Host的 serving-server做推理,然后结果原路返回(host proxy -> guest proxy -> guest serving-server)。
- guest serving-server 整合两方推理,通过 guest proxy把最终推理结果返回给guest的业务调用方。
{
"route_table": {
"default": {
"default": [
// 此处用于配置serving-proxy对外转发地址,如对端serving-proxy的grpc服务地址
{
"ip": "127.0.0.1",
"port": 9999
}
]
},
// 以下部分为当前serving-proxy所在节点(Party)路由规则,10000为己端PartyID,
// 当前serving-proxy组件配置中的coordinator参数也应设置为PartyID,查找路由时会通过此参数在路由表中查询
"10000": {
// 在未找到对应role的路由地址时,会使用default的配置
"default": [
{
"ip": "127.0.0.1",
"port": 8889
}
],
// serving为所部署的serving-server所配置的serviceRoleName参数
// 当使用ZK为注册中心时,优先从ZK中获取目标地址,未找到时从此路由表中查询
"serving": [
// 此处配置己端对应serving服务地址列表,ip和port对应serving-server所启动的grpc服务地址
{
"ip": "127.0.0.1",
"port": 8080
}
]
}
},
// 此处配置当前路由表规则开启/关闭
"permission": {
"default_allow": true
}
}