我在后端有两个微服务/模块:
ugc是包含所有数据并附带数据库的核心微服务。
实用程序是一个单独的工具,它没有自己的数据库,它负责资源和时间密集型的工作,比如向视频添加水印、从视频中提取缩略图等等。
对于水印视频处理,我们有一个队列,其发布端位于ugc模块,使用者端位于实用程序,用于实际处理视频。
现在,每当用户上传视频时,就会从客户端在ugc模块中命中API,并将详细信息存储在DB中,并将视频排入队列以生成有水印的视频。
现在,实用程序模块从队列中选择每一项并对其进行处理,一旦完成,我们需要将更新的视频URL存储在ugc数据库中。现在,要从实用程序模块更新数据库,我们有两个选项:
utilities
G 235
更新模型对象。
你认为什么是正确的方法?
第一个选择是过度工程吗?
发布于 2021-05-27 10:06:36
使用选项1,您似乎希望将数据库访问保持在ugc中。这不是一个问题,但是如果您创建另一个需要数据库的服务呢?你想做什么?
如果您希望在服务中保持对数据库的访问,那么我认为最好为此目的创建一个专用服务,并通过它对数据库进行所有其他访问。
它在查询数据库方面不太灵活,因为您必须为每个新查询创建一个端点。现在你必须保持两件事,数据库和数据库服务。
使用选项2,您必须有一种将凭据分发给所有服务的方法。您可能希望每个服务都有一个用户,并相应地设置权限。
我不认为有正确的方法,只有首选项,我个人更喜欢选项2,仅仅是因为它更容易设置和维护。
https://stackoverflow.com/questions/67717503
复制相似问题