我正在使用微服务架构模式开发一组服务。我的许多模型将具有大量的时间序列数据,这些数据将由机器学习引擎使用。
我希望我的机器学习引擎能够查询“跨实体”数据。意思是说,我希望能够比较多个对象之间的“特征”(数据点的机器学习术语/对象的特征)。
我想到我可以拥有一个专门设计用于存储和提供时间序列信息的集中式微服务。如果我可以在存储我的业务对象的服务和该功能服务之间创建一个API,那么我可以实现这一点。使用单个功能服务(或每个域模型一个),只要时间分辨率相同,我就可以轮询任何模型的任何功能集。
我的问题是:
以微服务的形式存在的集中式时间序列数据存储是否将其功能与外部服务中的各种模型相关联,这是一种用于实现跨实体特征查询的可行设计模式?如果没有,可以使用什么设计模式来实现此目的?
在我创建的每个微服务中复制时间序列数据存储,查询和操作时,我都不满意。
下面的图显示了我感兴趣的开发模式:
答案 0 :(得分:1)
您可以-它被称为数据库,很可能正是您所需要的。微服务是工具,而不是目标
也就是说,如果每个微服务都在“真相”中保存自己的数据,并且您需要该数据的副本以用于报告目的(在您的情况下为模型构建),这也是一个合理的解决方案。我称这个为“ aggregated reporting”