java - 在微服务架构中聚合原始数据分析的位置

标签 java architecture analytics microservices aggregation

我们需要为后台汇总分析。分析规范贯穿我们的整个系统,其中每个微服务创建自己的原始数据。问题我们应该在哪里聚合这些原始数据以进行分析:(我考虑了两种方法)

  1. 我们应该创建另一个新服务(例如分析服务),它将聚合来自所有服务的所有原始数据(通过将数据推送到其中)并在后台获取最终结果后准备聚合

  2. 每个服务都会聚合自己的分析,我们的后台将发送请求(并缓存)来自所有微服务的聚合结果?

谢谢。

最佳答案

有大量的框架和服务可以为您做到这一点。 Dropwizard、statsd、New Relic、App Dynamics。只需做一些研究即可。我想说的是,不要自己推出,因为您将花费更多的时间来创建和添加功能到您的指标系统,而不是从中获得值(value)。使用开箱即用的功能快速启动并运行大量已开发的功能。

--更新--

以下是我在决定跨服务指标生成/收集系统时需要考虑的因素。

  • 最少甚至没有源代码操作。许多库可以检查运行时而无需实际修改源代码。如果稍后需要,您还可以将 API 与检测结合使用来添加特定的指标收集代码。
  • 易于收集。将指标收集服务指向收集器应该很容易配置。
  • 轻松查看/聚合。一旦收集了指标,就应该很容易看出数据来自哪里以及数据点是什么。

基本上,选择一个能让您以最少的工作获得最大 yield 的方法。您可能会发现基本解决方案能够满足您的需求。如果没有,请花时间添加额外的收集器/仪表板。

关于java - 在微服务架构中聚合原始数据分析的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695032/

相关文章:

java - 获得不同系列具有相同的颜色

java - GAE 测试环境中的数据存储在 JUnit 测试之间泄漏数据

java - 如何从自定义 ListView 中获取特定 View 并更改属性?

node.js - 数据库客户端抽象

analytics - 合理的分析事件 API - 防止操纵

java - Android 生命体征 : no data available for one of my apps

hadoop - 存储大量通常以千字节为单位的小文本文件并执行分析的好方法

java - 如何使用现有基类对象构造派生类

.net - Silverlight 作为前端。后端技术有哪些可能的选择?

go - 客户端同步中的竞争条件