consult register服务使用java代码localhost端口和缺少的路径

sqxo8psd  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(214)

我有java代码将服务插入到我的consul服务中,使用spring cloud starter consul all和如下java代码:

if (response.getValue().isEmpty()) {

    NewService service = new NewService();
    service.setAddress("serverhere.com");
    service.setPort(8200);
    service.setId("servideId");
    service.setName("serviceName");

    client.agentServiceRegister(service);
}

我还需要添加参数或路径,例如:

http://serverhere.com:8080/parameter1/parameter2.

我不知道在哪里插入参数:/parameter1/parameter2。
我尝试添加以下代码:

//HealthCheck
    NewService.Check serviceCheck = new NewService.Check();
    serviceCheck.setHttp(service.getHealthCheck());
    serviceCheck.setInterval(healthCheckInterval);
    serviceCheck.setTimeout(healthCheckTimeout);

    //Path
    NewService.Check serviceCheckPath = new NewService.Check();
    serviceCheckPath.setScript("/parameter1/parameter2");
    serviceCheckPath.setInterval(healthCheckInterval);

    List<Check> serviceCheckList = new ArrayList();
    serviceCheckList.add(serviceCheck);
    serviceCheckList.add(serviceCheckPath);

    newService.setChecks(serviceCheckList);

    client.agentServiceRegister(newService);

我得到这个错误:operationexception(statuscode=400,statusmessage='bad request',statuscontent='request decode failed:json:unknown field“script”')
你能帮我找到合适的字段来保存与服务相关的路径吗。先谢谢你。

ni65a41a

ni65a41a1#

领事服务定义只能包含ip和端口信息。目录没有用于存储http路径信息的第一类方法。
你可以使用 Meta 用于将此信息存储在 path 钥匙。然后,您需要在应用程序中编写逻辑来使用httpapi执行服务发现,并从meta字段连接ip、端口和路径以形成完整的url。

相关问题