【问题标题】:Get data from another nodejs app to save it in another database从另一个 nodejs 应用程序获取数据以将其保存在另一个数据库中
【发布时间】:2020-10-25 20:28:06
【问题描述】:
假设一个服务器用 nodejs 构建,并与 mySQL 数据库连接。此应用程序想要从 MongoDB 数据库中获取数据并对其进行编辑。
例如,服务器想从另一个与mongoDb 连接的nodejs 应用程序中获取用户数据,并将voted 字段添加到每个用户,然后将它们保存到mySQL 数据库。
对于这种情况,最好的设计和方法是什么?
【问题讨论】:
标签:
mysql
node.js
mongodb
【解决方案1】:
1- 简单的“愚蠢”解决方案(服务之间存在耦合):
- 在返回必要数据的应用程序 (A) 上创建 REST 端点,并从
您的应用程序 (B) 直接调用此端点(http 调用)(从您的配置中获取 BaseURL
或路由,如果您使用的是 API 网关),将投票添加到您的域(应用 B 中的业务层)
并保存到 MySql DB。
2- 有点复杂(保证服务之间没有耦合)
- 是使用像“RabbitMQ”这样的消息代理,并且依赖于“Pub/Sub”模型,其中
您向代理发布消息(当应用程序 A 向 MongoDB 添加新用户时),然后您
从您的应用 B 订阅此消息,以获取消息(此消息将包括
您想要“用户对象”的数据对其进行变异,然后保存到 Mysql )
- 这个简单的答案,假设两个数据库之间没有数据同步,因为你要在其中一个中改变“用户”,否则,如果你想要同步,你需要在突变完成后触发一个事件,并且服务 A 将订阅此获取消息,更新其 MongoDB