Javalite for Microservice项目,是否提供应用程序跟踪/监视支持?

时间:2019-04-23 08:07:03

标签: javalite

我必须在基于微服务体系结构的项目中使用Javalite,因此想检查是否可以通过某些现有插件获得跟踪支持(类似于/ bootuator / health和/ actuator / prometheus)。自定义更改以支持相同的内容?

1 个答案:

答案 0 :(得分:0)

ActiveWeb没有对此的直接支持,但是我们通常会构建类似的服务。 “健康”对于不同的应用程序意味着许多不同的事物。我们已经使用JavaLite构建了许多企业项目,到目前为止,已经制定出以下方法。通常,我们有一个由多个应用组成的项目:

  • 面向客户的网络应用(Web)
  • 后台办公室应用程序,用于控制帐户,报告等(管理员)
  • Web服务API(API)
  • 后端处理应用(工作人员)

每个应用程序都是集群的,因此我们将有许多实例,并且我们需要了解每个实例的运行状况。每个实例的运行状况取决于:

  1. 当前可用堆空间
  2. 访问数据库(通常是多个)
  3. 访问缓存
  4. 访问本地服务(通过网络访问api,访问工作人员等)
  5. 访问NFS
  6. 与此应用有意义的一切

所以...我们为每种类型的应用程序实现了一个所谓的StatusController。这种状态控制器在调用其index()方法时将依次调用所有服务,这是该应用程序生计所必需的,并将生成带有结果的JSON文档。如果一切都很好,那么JSON文档就是简单的{"status":"OK", "service1": "OK", "service2": "OK"}或类似的东西。如果其中一项服务不可访问,它将生成一个异常并以包含确切异常的JSON文件作为响应:{"status":"ERROR", "service1": "OK", "service2": "Exception: exception stack trace"}

管理Web应用程序还包含一个“运行状况”页面,该页面将聚集对群集中所有应用程序的调用,并显示一个完整的报告,该报告也使用颜色编码(绿色-确定,红色-错误)。因此,通过浏览此页面,我们可以确切地知道如果出现问题,集群中有什么问题。

但是,“管理员健康”页面还具有第二个目的。这是Pingdom调用的Web服务。如果群集运行状况良好,则此页面返回HTTP代码200,如果存在至少一个问题,它将返回500。我们使用Pingdom中“运行状况页面”的URL,该页面每分钟跟踪一次。每当集群中的任何服务出现问题时,StatusController都会向Pingdom返回500,并且它将向正在通话的任何人发送通知。收到通知后,我们会在“运行状况”页面上查看有关集群问题的信息。

几年前,我们制定了这种方法,从那时起,它就一直忠实地为我们服务。