我们不得不与安全的人打来的电话,并谈到了这一点,在其他项目中。亚搏在线随后,我收到一封电子邮件,与下面的信息。事实证明,有一个未公开的REST API调用可以做出做一个快速的“健康检查”,看看这些服务正在运行,但它仍然没有充分测试任务处理能力。总之,他们的反应很有趣,而且提供了围绕可用电话是什么一些进一步的背景,以及他们正在检查...
在我们今天讨论的呼叫,这里是针对FME Sever的健康检查,REST端点:
这是我们用它来检查我们的FME云实例是否启动和运行端点。不过我不是100%了,如果这就是你要找的人。我有一个开发者的讨论和事实证明,这只是调用检查是否REST API的webapp运行。它不会告诉你:
1。是FME核心流程运行
2。是FME引擎运转过程
所以它不完全是一个指示作业是否能够被处理。
该/ fmerest / V3 /健康检查端点或者返回一个HTTP 200响应代码或不响应。
呼叫
在FME核心进程是否正常,因为它会调用这个过程会给出指示。这就是说,我们不建议打这个端点过于频繁,因为它是单线程的,可以把很多负载上的进程。这才是真正的原因,我们用健康检查端点。
该/ fmerest / V3 /信息调用可以返回取决于芯2个的状态不同的HTTP状态代码:
- 200核心是高达&运行
- 503的Web应用程序无法连接到核心
查验该端点大约每10s应该罚款。
另一种选择是呼叫
这会告诉你是否引擎注册和运行,因此,这是最好的指标作业是否可以处理或不。不过,这种调用会比较慢,可能也不宜过高间隔被击中。
作为结论,我想说的healthcehck给你一个想法枯萎和tomcat的机器了,它可以在很短的间隔被击中。如果FME Server的核心是在不同的机器上运行,如果核心是降低该检查将无法检测。在信息和发动机端点会给你更多的信息,对整体状况,但也不应过于频繁命中。
感谢乡亲。我想,检查可用的引擎可能是最好的办法,按照托德的建议,只是想看看是否有人有替代解决方案/建议。
这将是很好,如果安全能增加一个REST调亚搏在线用专门检查FME Server的“可用性”,当然,这是最好的定义。例如,有可能是引擎可用,但不是核心?他们开始和不同的服务管理。或为引擎和核心可用,但不是DB服务?
我想检查引擎可用性是一个良好的开端,可能与当前的REST API的最佳解决方案,但我只是不知道它是一个整体解决方案。
这将是很好,如果能安全上对此有何评论?亚搏在线:)
作为@todd_davis说,你可以使用REST API来查询运行引擎的数量。例:
HTTP:// myfmeserver / fmerest / V2 /变换/引擎接受= JSON&细节=低
它会返回枚举可用引擎JSON列表对象。如果你想看看如果其中一人是自由的,支票currentJobId = -1,例如来自两台发动机的服务器:
[{ “主机名”: “myfmeserver”, “resultFailureCount”:0 “resultSuccessCount”:0 “maxTransactionResultSuccess”:100, “实例名”: “myfmeserver_Engine1”, “transactionPort”:62392 “currentJobID”:-1,“maxTransactionResultFailure": 10, "buildNumber": 16716, "platform": "WIN32" }, { "hostName": "myfmeserver", "resultFailureCount": 0, "resultSuccessCount": 0, "maxTransactionResultSuccess": 100, "instanceName": "myfmeserver_Engine2", "transactionPort": 54189, "currentJobID": -1, "maxTransactionResultFailure": 10, "buildNumber": 16716, "platform": "WIN32" } ]
还有一个API调用查询运行和排队的作业,如果你需要更多的信息。
最好的办法知道哪些API终点,使用由FME服务器>帮助> REST API是ACCES这种方式,你可以看到的结果是什么,它是否符合您的需求。
希望这可以帮助。
如果您想查询是否有发动机运行,或与队列您可以使用转换/职位如下的获取:
http://docs.亚搏在线safe.com/fme/html/FME_REST/v2/apidoc/index.html#!/transformations/list_get_11