0

我有一个带有 profobuf 服务的项目,效果很好:

jamie@machine:~/imp/lb$ lb delete imp && lb services restart
...
jamie@machine:~/imp/lb$ lb create imp && lb compile project ~/imp/lb/imp.project && lb addproject imp ~/imp/lb
created workspace 'imp'
jamie@machine:~/imp/lb$ echo '{}' | lb web-client call http://127.0.0.1:8080/ui
{}

但是当我从 docs 添加分支服务时,protobuf 服务停止工作:

jamie@machine:~/imp/lb$ lb web-server load --config ~/imp/lb/branch-services.config
loaded static workspace imp
jamie@machine:~/imp/lb$ echo '{}' | lb web-client call http://127.0.0.1:8080/ui
<3>2017-01-18 04:28:26,72400+00:00 ERROR BatchDriver        - Server Error from service: http://127.0.0.1:8080/ui (HTTP Status 404)
error: stm {
  simple {
    call_proto {
      service: "http://127.0.0.1:8080/ui"
      encoding: JSON
      gzip: true
      input {
        binary: "{}\n"
      }
      output_file: "-"
      format: false
      method: POST
    }
  }
  status: ERROR
  exception: "Server Error from service: http://127.0.0.1:8080/ui (HTTP Status 404)"
  end_time: "2017-01-18 12:28:26,72500+08:00"
  start_time: "2017-01-18 12:28:26,56300+08:00"
}

我需要以某种方式组合配置吗?他们需要住在不同的工作空间吗?

4

2 回答 2

0

您可能正在声明多个具有相同前缀的服务(例如 /ui)。发生这种情况时,服务器将卸载所有这些。

您可以在 $LB_DEPLOYMENT_HOME/logs/current/lb-web-server.log (或在 systemd 的日志中,如果已部署)检查服务器做了什么。

您还可以列出当前正在运行的服务:

lb web-server list -s
于 2017-01-18T16:18:40.073 回答
0

您对部署 protobuf 服务的工作区和附加分支服务的静态工作区使用相同的名称。将静态工作区重命名为其他名称应该可以解决您的问题。

或者,您可以在使用 logiQL 而不是 json 为 protobuf 服务提供服务的工作区中声明分支服务。就像是:

service_by_prefix_and_method[["/imp/get-branch-names", "POST"]=x,
  protobuf_service(x) {
  custom_handler[] = "lb:web:connectblox:get_branch_names",
  protobuf_protocol[] = "bloxweb_connectblox",
  protobuf_request_message[] = "GetBranchNames",
  protobuf_response_message[] = "GetBranchNamesResponse",
  group("lb:web:internal")
}.
于 2017-01-18T17:56:00.407 回答