如果数据库关闭,我们想生成CloudWatch警报,因此,我尝试查看是否可以解析执行器/运行状况端点的响应,并在响应返回数据库关闭的情况下记录自定义错误代码。
我在StackOverflow上发现了一些类似的问题,但是那里没有提供解决方案。
答案 0 :(得分:0)
如果其他人也想这样做,我想在这里发布答案 经过一堆研究,我发现有两种方法可以做到这一点。
使用过滤器-使用ContentCachingResponseWrapper缓存响应,使用对象映射器读取响应,然后使用contentCachingResponseWrapper.copyBodyToResponse()重新填充响应。在查看spring-boot git存储库的问题时,看起来可以进行拦截器,但似乎很麻烦,引导团队建议使用过滤器。
使用自定义运行状况指示器-自动连接ApplicationContext并获取Spring bean DataSourceHealthIndicator的所有权,然后在其上调用health()函数。
我有两种工作方式,但我继续执行#1,因为#2将进行两次数据库运行状况检查。