【发布时间】:2021-08-15 10:34:33
【问题描述】:
我在后端有两个微服务/模块:
- ugc
- 实用程序
ugc 是包含所有数据并附加数据库的核心微服务。
实用程序是一个独立的工具,它没有自己的数据库,负责处理资源和时间密集型的工作,例如在视频中添加水印、从视频中提取缩略图等。
对于水印视频处理,我们有一个队列,其发布端在ugc模块,消费者端在utilities来实际处理视频。
现在,每当用户上传视频时,客户端会在 ugc 模块中调用一个 API,并将详细信息存储在 DB 中并将视频推送到队列以生成带水印的视频。
现在,utilities 模块从队列中挑选每个项目并对其进行处理,完成后,我们需要将更新后的视频 URL 存储在 ugc 数据库中。现在要从 utilities 模块更新数据库,我们有两个选择:
- 在 ugc 模块中创建一个 API 来接收水印视频 URL 并从 utilities 中点击它
- 使用数据库凭据连接 utilities 模块中的 ugc 数据库,并使用对象 ID 直接更新模型对象。
你认为正确的方法是什么?
第一个选项是不是过度设计步骤?
【问题讨论】:
标签: node.js database-design architecture microservices backend