假设您正在为电子商务应用程序构建一个产品推荐算法,它是作为一个微服务体系结构构建的,该体系结构为用户和产品提供了独立的服务。该算法应该公开为推荐服务,该服务给定用户id,根据推荐产品的购买历史返回推荐产品的列表。
问题是,假设推荐算法是脱机的,因此分批运行,并要求每个用户为每次运行购买历史记录,您如何从用户服务中获取这些数据?在单块体系结构中,您可以直接从数据库的报告副本中读取数据,这样就可以在不影响生产性能的情况下进行大型复杂查询。
对我来说,最明显的答案似乎是,您只是在每次运行时向用户服务提出了一个巨大的请求,并确保您有能力处理该请求,有更好的解决方案吗?
发布于 2015-01-15 14:59:22
在您的推荐服务中保存用户购买历史记录的副本。然后,对于每一个新的批处理运行,它只需要从用户服务请求更新的用户(如果您想这样调用它,则是一个增量更新)。
您将需要一个大的更新来提升推荐服务,并且可能不时需要一个大的同步更新,但是您不需要每次都请求完整的采购历史记录。
https://softwareengineering.stackexchange.com/questions/270185
复制相似问题