如何组合protobuf服务和分支服务?

时间:2017-01-18 04:42:11

标签: logicblox

我有一个project有一个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
{}

但是当我添加branch services from the 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"
}

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

2 个答案:

答案 0 :(得分:0)

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

您可以检查服务器在$ LB_DEPLOYMENT_HOME / logs / current / lb-web-server.log中执行的操作(如果已部署,则在systemd的日志中)。

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

lb web-server list -s

答案 1 :(得分: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")
}.