node.js - node.js POST 请求到另一台服务器
问题描述
我有一个 node.js 应用程序(假设是应用程序 1),它生成虚拟数据并将数据推送到 localhost:3000 的 mongodb。此应用程序是使用 node.js、express 和 mongodb 创建的。
在另一个应用程序(应用程序 2)中,我使用的是 node.js、express 和 mqtt。在这个应用程序中,我想收集应用程序 1 生成的数据,这个应用程序在端口号 3001 上运行。
我的问题是,如何将数据从应用程序 1 发布到应用程序 2,或者如何将数据从应用程序 1 获取到应用程序 2?
解决方案
这听起来像是 TCP 套接字的工作。
问题是,如果您想将数据推送到其他地方,您需要先打开应用程序之间的连接,然后您才能在它们之间进行推送(就像聊天应用程序一样)。
乐趣从何开始。实施时有许多选项可供选择:
- 直接 TCP 连接 (Pub/Sub) - 在其中实现 TCP 服务器
App1
并允许App2
连接到它(参见net)。 - Pub/Sub Server - 与第一个类似,但您在它们之间使用了某种中间体。这很好,因为
App2
不必直接被迫App1
(例如,参见Redis pub/sub) - 队列- 如果您的数据是有状态
App2
的,并且无论它是否停机一段时间,生成的数据的每一个速度都必须达到,这是一个选择。队列将被填满并等待App2
连接回来,然后队列将开始清空(例如,参见RabbitMQ )
推荐阅读
- python - Airflow - 为 DockerOperator 获取并清理 run_id
- pycharm - 如何为 pycharm 和 spyder 设置站点包目录?
- python - 如何从下一个名称中减去存储在 python 列表中的列名?
- vba - 在 Access CSV 导出顶部附加其他行
- javascript - 多个地址自动完成字段?(#Google Places API & getElementById #)
- deep-learning - 如何在 Pytorch 中分别连接两个大小为 [B,C,13,18] 和 [B,C,14,18] 的张量?
- java - 如何模拟任务:Spring中的执行者
- java - 带有 GeoTools 和 Shapefile 的 Geocoder 产生的 java.lang.NullPointerException
- oracle - SSIS - Oracle 视图导入不可见
- git - 如何排除文件和文件夹被包含在 git 发布的源代码中?