我们需要为后台汇总分析。分析规范贯穿我们的整个系统,其中每个微服务创建自己的原始数据。问题我们应该在哪里聚合这些原始数据以进行分析:(我考虑了两种方法)
我们应该创建另一个新服务(例如分析服务),它将聚合来自所有服务的所有原始数据(通过将数据推送到其中)并在后台获取最终结果后准备聚合
每个服务都会聚合自己的分析,我们的后台将发送请求(并缓存)来自所有微服务的聚合结果?
谢谢。
最佳答案
有大量的框架和服务可以为您做到这一点。 Dropwizard、statsd、New Relic、App Dynamics。只需做一些研究即可。我想说的是,不要自己推出,因为您将花费更多的时间来创建和添加功能到您的指标系统,而不是从中获得值(value)。使用开箱即用的功能快速启动并运行大量已开发的功能。
--更新--
以下是我在决定跨服务指标生成/收集系统时需要考虑的因素。
- 最少甚至没有源代码操作。许多库可以检查运行时而无需实际修改源代码。如果稍后需要,您还可以将 API 与检测结合使用来添加特定的指标收集代码。
- 易于收集。将指标收集服务指向收集器应该很容易配置。
- 轻松查看/聚合。一旦收集了指标,就应该很容易看出数据来自哪里以及数据点是什么。
基本上,选择一个能让您以最少的工作获得最大 yield 的方法。您可能会发现基本解决方案能够满足您的需求。如果没有,请花时间添加额外的收集器/仪表板。
关于java - 在微服务架构中聚合原始数据分析的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695032/