gpt4 book ai didi

c# - CheckID 没有关联的 TTL

转载 作者:行者123 更新时间:2023-11-30 18:15:54 29 4
gpt4 key购买 nike

我正在尝试利用 Consul .NET API 通过 TTL 注册和启动运行状况检查。首先,我使用以下代码注册我的服务:

var address = node.Address;
var id = ServiceId(address);
var registration = new AgentServiceRegistration
{
ID = id,
Name = node.ClusterName,
Address = node.Address.Host,
Port = node.Address.Port.Value,
Check = new AgentServiceCheck
{
TTL = settings.AliveInterval, // 10sec
DeregisterCriticalServiceAfter = settings.AliveTimeout, // 60sec
}
};
// first, try to deregister service, if it has been registered previously
await consul.Agent.ServiceDeregister(registration.ID);
await consul.Agent.ServiceRegister(registration);

紧接着,我尝试通过以下方式触发 TTL:

await consul.Agent.PassTTL("service:" + ServiceId(addr), string.Empty);

然而,我最终得到的是在 PassTTL 期间抛出的异常:Consul.ConsulRequestException: Unexpected response, status code InternalServerError: CheckID "service:{service-id}"does not have associated TTL

以及来自consul agent本身的相关日志:

[ERR] http: Request PUT /v1/agent/check/pass/service:{service-id}, error: CheckID "service:{service-id}" does not have associated TTL from=127.0.0.1:25419

我想知道我在这里做错了什么。

我正在使用 consul agent -dev(版本:1.0.1)和 Nuget 包 Consul(版本:0.7.2.3)。

最佳答案

事实证明 AgentServiceRegistration.Check 属性非常无用。我用 CheckRegister 方法达到了预期的结果。

这是代码

var registration = new AgentServiceRegistration
{
ID = "serviceId",
Name = node.ClusterName,
Address = node.Address.Host,
Port = node.Address.Port.Value
};
// first, try to deregister service, if it has been registered previously
await consul.Agent.ServiceDeregister(registration.ID);
await consul.Agent.ServiceRegister(registration);
await consul.Agent.CheckRegister(new AgentCheckRegistration()
{
ID = "checkId",
Name = "Check Name",
Status = HealthStatus.Passing,
TTL = settings.AliveInterval,
ServiceID = "serviceId",
DeregisterCriticalServiceAfter = settings.AliveTimeout, // 60sec
})

现在你可以通过

await consul.Agent.PassTTL("checkId", string.Empty);

请确保事后注销您的支票

关于c# - CheckID 没有关联的 TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463060/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com