领事模板 意外响应代码:504



我正在使用Consul-Template来渲染从Consul收集的数据的属性。文件已成功呈现,但之后 Consul-Template 一遍又一遍地故障转移,直到崩溃:

2017/08/16 10:43:04.900637 [WARN] (view) kv.list(...): Unexpected response code: 504 (retry attempt 5 after "4s")

这种情况会持续更长时间的暂停,直到达到限制/崩溃。

从日志中提取的配置:

2017/08/16 10:38:02.403969 [DEBUG] (runner) final config:
{
"Consul": {
"Address": "consul-client.development.discovery",
"Auth": {
"Enabled": false,
"Username": "",
"Password": ""
},
"Retry": {
"Attempts": 12,
"Backoff": 250000000,
"MaxBackoff": 60000000000,
"Enabled": true
},
"SSL": {
"CaCert": "",
"CaPath": "",
"Cert": "",
"Enabled": false,
"Key": "",
"ServerName": "",
"Verify": true
},
"Token": "",
"Transport": {
"DialKeepAlive": 30000000000,
"DialTimeout": 30000000000,
"DisableKeepAlives": false,
"IdleConnTimeout": 90000000000,
"MaxIdleConns": 100,
"MaxIdleConnsPerHost": 3,
"TLSHandshakeTimeout": 10000000000
}
},
"Dedup": {
"Enabled": false,
"MaxStale": 2000000000,
"Prefix": "consul-template/dedup/",
"TTL": 15000000000
},
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 0
},
"KillSignal": 2,
"LogLevel": "DEBUG",
"MaxStale": 2000000000,
"PidFile": "",
"ReloadSignal": 1,
"Syslog": {
"Enabled": false,
"Facility": "LOCAL0"
},
"Templates": [
{
"Backup": false,
"Command": "",
"CommandTimeout": 30000000000,
"Contents": "",
"Destination": "/consul-template/output/service.properties",
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 30000000000
},
"Perms": 420,
"Source": "/consul-template/data/service.properties.tpl",
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
},
"LeftDelim": "",
"RightDelim": ""
},
{
"Backup": false,
"Command": "",
"CommandTimeout": 30000000000,
"Contents": "",
"Destination": "/consul-template/output/application.properties",
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 30000000000
},
"Perms": 420,
"Source": "/consul-template/data/application.properties.tpl",
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
},
"LeftDelim": "",
"RightDelim": ""
},
{
"Backup": false,
"Command": "",
"CommandTimeout": 30000000000,
"Contents": "",
"Destination": "/consul-template/output/anotherMicroConsul.properties",
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 30000000000
},
"Perms": 420,
"Source": "/consul-template/data/anotherMicroConsul.properties.tpl",
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
},
"LeftDelim": "",
"RightDelim": ""
},
{
"Backup": false,
"Command": "",
"CommandTimeout": 30000000000,
"Contents": "",
"Destination": "/consul-template/output/master.properties",
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 30000000000
},
"Perms": 420,
"Source": "/consul-template/data/master.properties.tpl",
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
},
"LeftDelim": "",
"RightDelim": ""
},
{
"Backup": false,
"Command": "",
"CommandTimeout": 30000000000,
"Contents": "",
"Destination": "/consul-template/output/microConsul.properties",
"Exec": {
"Command": "",
"Enabled": false,
"Env": {
"Blacklist": [],
"Custom": [],
"Pristine": false,
"Whitelist": []
},
"KillSignal": 2,
"KillTimeout": 30000000000,
"ReloadSignal": null,
"Splay": 0,
"Timeout": 30000000000
},
"Perms": 420,
"Source": "/consul-template/data/microConsul.properties.tpl",
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
},
"LeftDelim": "",
"RightDelim": ""
}
],
"Vault": {
"Address": "",
"Enabled": false,
"Grace": 15000000000,
"RenewToken": true,
"Retry": {
"Attempts": 12,
"Backoff": 250000000,
"MaxBackoff": 60000000000,
"Enabled": true
},
"SSL": {
"CaCert": "",
"CaPath": "",
"Cert": "",
"Enabled": true,
"Key": "",
"ServerName": "",
"Verify": true
},
"Transport": {
"DialKeepAlive": 30000000000,
"DialTimeout": 30000000000,
"DisableKeepAlives": false,
"IdleConnTimeout": 90000000000,
"MaxIdleConns": 100,
"MaxIdleConnsPerHost": 3,
"TLSHandshakeTimeout": 10000000000
},
"UnwrapToken": false
},
"Wait": {
"Enabled": false,
"Min": 0,
"Max": 0
}
}

筛选代码时,此错误消息似乎来自session.go中的Renew

我应该在领事/session/list下看到一个会议吗?我正在运行多个 Consul-Template 容器(每个主机上一个( - 我应该看到多个会话吗?现在我什么也没看到...

curl localhost:8500/v1/session/list
[]

原因:您的领事模板和领事之间有一个代理或负载均衡器。

解决办法:将空闲连接的负载均衡器或代理超时增加到 60 秒以上(例如:65 秒或 120 秒(,因为在此之后,保持连接将启动并保持连接活动状态:)

  • HTTP 504 是网关超时,这意味着连接已被"切断"或服务变得无响应,但我假设您的领事集群仍在工作,因此这是由于中间有一个活动网络设备(在领事模板和领事之间(
  • 领事模板打开持久的连接以侦听更改。因此,如果负载均衡器以静默方式终止连接,则最终会出现这些 504 错误。
  • 这些消息是良性的,因为领事模板重新连接正常。但是它们很烦人,并且会一遍又一遍地使用相同的警告填满您的日志和磁盘空间;-(
  • 如果在 AWS 中,请将 ELB 空闲超时设置为 65 秒,这些消息将消失

相关内容

  • 没有找到相关文章

最新更新