我有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”')
你能帮我找到合适的字段来保存与服务相关的路径吗。先谢谢你。
1条答案
按热度按时间ni65a41a1#
领事服务定义只能包含ip和端口信息。目录没有用于存储http路径信息的第一类方法。
你可以使用
Meta
用于将此信息存储在path
钥匙。然后,您需要在应用程序中编写逻辑来使用httpapi执行服务发现,并从meta字段连接ip、端口和路径以形成完整的url。