44.6. 指标仓库

通过绑定一个MetricRepository来实现指标服务。MetricRepository负责存储和追溯指标信息。Spring Boot提供一个InMemoryMetricRepository和一个RedisMetricRepository(默认使用in-memory仓库),不过你可以编写自己的MetricRepositoryMetricRepository接口实际是MetricReader接口和MetricWriter接口的上层组合。具体参考Javadoc

没有什么能阻止你直接将MetricRepository的数据导入应用中的后端存储,但我们建议你使用默认的InMemoryMetricRepository(如果担心堆使用情况,你可以使用自定义的Map实例),然后通过一个scheduled export job填充后端仓库(意思是先将数据保存到内存中,然后通过异步job将数据持久化到数据库,可以提高系统性能)。通过这种方式,你可以将指标数据缓存到内存中,然后通过低频率或批量导出来减少网络拥堵。Spring Boot提供一个Exporter接口及一些帮你开始的基本实现。