marathon参考(9):健康检查
来源:互联网 发布:java开发语言 编辑:程序博客网 时间:2024/05/16 12:50
健康检查是需要每个应用运行监控检查任务的。
1.默认的健康检查是延迟才能让mesos知道任务的状态是否健康。
2.marathon提供一个任务资源的健康成员访问的REST API接口。
如果HTTP的响应在超时时间timeoutSeconds内返回代码在200到399之间,那么健康检查认为是健康的。如果任务失败连续超过健康检查规定的maxConsecutiveFailures次数,这个任务将会被kill掉。
实例:
{ "path": "/api/health", "portIndex": 0, "protocol": "HTTP", "gracePeriodSeconds": 300, "intervalSeconds": 60, "timeoutSeconds": 20, "maxConsecutiveFailures": 3, "ignoreHttp1xx": false}
或者
{ "portIndex": 0, "protocol": "TCP", "gracePeriodSeconds": 300, "intervalSeconds": 60, "timeoutSeconds": 20, "maxConsecutiveFailures": 0}
或者
注意:在和docker化的任务组合中,命令健康检查mesos 0.23.0和0.24.0版本中有bug。在0.23.1和0.24.1中已经得到修复。
想要了解更多,请查看https://issues.apache.org/jira/browse/MESOS-3136。
{ "protocol": "COMMAND", "command": { "value": "curl -f -X GET http://$HOST:$PORT0/health" }, "gracePeriodSeconds": 300, "intervalSeconds": 60, "timeoutSeconds": 20, "maxConsecutiveFailures": 3}
健康检查配置项
首先你需要描述健康检查的协议:
protocol(可选,默认为HTTP):请求的协议有三种,分别是HTTP/TCP/COMMAND
HTTP/TCP健康检查被marathon执行,因此当前marathon leader必须是可以访问的。COMMAND健康检查是通过在代理服务上的mesos运行一个类似的任务在本地执行的。
下面的配置项适合所有协议:
gracePeriodSeconds(可选,默认为300):健康检查失败在多少秒内被忽略,或者直到任务状态变成健康。
intervalSeconds(可选,默认60):健康检查间隔时间
maxConsecutiveFailures(可选,默认3):健康检查连续失败3次后,不健康的任务会被kill。如果这个值是0,即使健康检查失败,任务也不好被删除。
timeoutSeconds(可选,默认20):健康检查请求没有会的响应的时限。
对TCP/HTTP健康检查,port和portIndex也许会使用到。如果没有提供,portIndex会被设定。如果提供了port,它会优先覆盖所有的portIndex选项。
portIndex(可选,默认为0):这个应用的ports或portDefinitions数组的索引。所以应用可能会使用随机端口,例如[0,0,0],任务可能会使用$PORT1这个环境变量。
port(可选,没有默认值):健康检查额端口号。
下面的配置只适用于HTTP健康检查:
path(可选,默认为/):任务暴露一个终端点用于健康检查。例如:/path/to/health
ignoreHttp1xx(可选,默认为false):忽略HTTP状态为100到199的信息。如果这个HTTP健康检查返回这个状态的信息,结果被丢弃和任务的健康状态保持不变。
健康生命周期
应用的健康生命周期如下图所示。
在图中:
i表示请求实例数
r表示运行实例数
h表示健康实例数
- marathon参考(9):健康检查
- dcos - marathon - 有的时候健康检查不是绿条
- 健康检查
- marathon参考(1)应用基础
- marathon参考(6): 约束Constraints
- marathon参考(7):应用组
- Oracle数据库健康检查
- AIX健康检查errpt
- keepalived健康检查 HTTP_GET
- keepalived健康检查 HTTP_GET .
- HBase 健康检查工具
- SQL Server健康检查
- 健康检查程序
- haproxy 检查http 健康
- SQL Server健康检查
- 应用健康检查
- SQL Server健康检查
- 集群健康检查api
- hadoop、storm和spark的区别、比较
- spring ioc
- JAVA中的深度克隆(deep clone) 和 影子克隆(shallow clone)浅析
- Android studio 配置Git (第一次提交代码)
- Mysql非安装版的安装使用相关问题
- marathon参考(9):健康检查
- 使用keepalived实现Redis双机热备、高可用
- Could not find class 'org.apache.http.entity.mime.MultipartEntity'
- Android 拷贝Asset目录下文件或者文件夹
- 翻译 DBFlow Getting Started 入门指南
- 《Spark MLlib机器学习》已正式上市发售
- 懒人工具3 -- 远程访问
- JAVA使用JDBC连接oracle数据库
- android动画入门,进阶,提高----自定义控件绘图篇和Path之贝赛尔曲线