Skip to content

proxy的配置详解

application.properties配置

以下为conf/application.properties文件配置详解。源码中的配置文件没有罗列出所有配置,只保留了必需的配置, 其他配置都采用了默认值。如果需要可以根据以下表格来在配置文件中新增条目。
例如:若需要把预测所用的grpc端口更改为8870,则在application.properties文件中手动添加: proxy.grpc.inter.port=8870

配置项 配置项含义 默认值
server.port 监听的http端口 8059
coordinator 本方partid,此参数比较重要 9999
inference.service.name 转发服务名称 serving
print.input.data 访问日志中是否打印输入参数 false
print.output.data 访问日志中是否打印返回结果 false
proxy.async.coresize 异步处理http请求线程池核心线程数 10
proxy.async.maxsize 异步处理http请求线程池最大线程数 100
proxy.async.timeout 处理http请求的超时时间 5000
proxy.grpc.batch.inference.timeout 批量预测请求的超时时间 10000
proxy.grpc.inference.timeout 单笔预测请求的超时时间 3000
proxy.grpc.inter.port 对集群外暴露的grpc端口 8869
proxy.grpc.intra.port 对集群内暴露的grpc端口 8879
proxy.grpc.threadpool.coresize 处理grpc请求的线程池的核心线程数 50
proxy.grpc.threadpool.maxsize 处理grpc请求的线程池的最大线程数 100
proxy.grpc.threadpool.queuesize 处理grpc请求的线程池的队列大小 10
proxy.grpc.unaryCall.timeout unaryCall请求的超时时间 3000
useZkRouter 是否使用zk true
zk.url zk集群地址 localhost:2181,localhost:2182,localhost:2183
acl.enable 是否使用zookeeper acl鉴权 false
acl.username acl 用户名 默认空
acl.password acl 密码 默认空

route_table配置

下面的json代码大致说明了router_table.json的填写规则,根据具体案例来配置。

启动注册中心时,只配置默认对外转发地址(default)即可 ;
在2.1.0版本开始支持HTTP接口配置,2.1.0之前的版本只支持GRPC配置。

1.GRPC

{
  "route_table": {
    "default": {  //  使用此处的default配置就能向对方发送请求,能满足大部分需求。 
      "default": [
        {  // 此处用于配置serving-proxy默认对外转发地址, 切记不能配置成serving-proxy自己的ip端口,会形成回环  
          "ip": "192.168.1.1", 
          "port": 8869
        }
      ]
    },

    // 以下是路由中己方部分的配置说明:
      (提示:如果使用zk的话,己方的配置其实是可以省略的,因为路由信息在服务启动的时候全注册到zk了,系统会在zk上拿到想要的信息;
             如果部署时候选择的是无zk方案,那么下面的配置不能缺少)

    //己方的serving-proxy 在收到grpc unaryCall接口的请求后,会根据请求中的目的partyId尝试匹配。
      比如请求中目的partId为10000,则会在路由表中查找是否存在10000的配置
    //此处的10000表示目的partId 为10000时的路由,匹配到10000之后再根据请求中的角色信息role,
      比如请求role为serving,则会继续往下面匹配serving的配置  
    "10000": {
      "default": [  //可以给出一个默认值, 在未找到对应role的路由地址时,会使用default的配置 
        {
          "ip": "127.0.0.1",
          "port": 8879
        }
      ],
      "serving": [
        // 当匹配到role为serving,则代表请求为发给serving-server的请求,这时检查是否启用了ZK为注册中心,
           如果启用ZK则优先从ZK中获取目标地址,未找到时使用以下地址

        {  // 此处配置己端对应serving服务地址列表,ip和port对应serving-server所启动的grpc服务地址 
          "ip": "127.0.0.1",
          "port": 8000
        }
      ]
    }
  },
  "permission": {
    "default_allow": true  // 此处配置当前路由表规则开启/关闭
  }
}
2.HTTP 在2.1.0版本开始支持guest和host之间http通信,配置举例如下:
{
  "route_table": {
    "default": {
      "default": [
        {
          "url":"http://127.0.0.1:8879/unary"
        }
      ]
    },
    ......
  },
  "permission": {
    "default_allow": true  // 此处配置当前路由表规则开启/关闭
  }
}