如何将节点应用程序拆分为不同的进程

时间:2015-07-25 16:24:43

标签: node.js supervisord

我正在构建一个非常复杂的节点应用程序,我最近选择使用rabbitmq来编写与消息通信的干净独立模块。

实施后,很明显我的应用程序被拆分成3个独立的部分,我可以命名:

  1. “Emit”(执行动作并发出rabbitmq发生的事情):应该仍然是一个进程,因为它将重要的数据保存在内存中(除非数据可以在进程之间共享)。
  2. “处理”(从Emit接收操作并处理/更新数据):可以在不同的进程上运行
  3. “显示”(用新的更新数据回答HTTP请求):可以在不同的进程上运行
  4. 目前,一切都在一个节点应用程序/进程中运行,并且它运行良好,但由于这些第三部分非常独立,我希望通过将其拆分为3个节点应用程序/进程来进一步优化

    问题是,我“只是”一名开发人员,我真的不掌握这个领域,所以我非常害怕“摧毁一切”!

    它有很多问题,比如:我怎么能写功能测试? 如果我想测试“Emit发送一个事件,然后治疗就可以了,那么Dislpay能够回答它”。这意味着必须先运行Emit和Treat节点应用才能运行测试...

    所以这是一个很大的主题,但要恢复,我的问题可能是:

    1. 当节点应用并行执行不同的操作时,将节点应用拆分为不同的应用是否是个好主意,但仍然与事件相关联?

    2. 是否有最佳做法或工具?

    3. 有没有办法在一个“项目”中开发您的应用程序,并将其拆分为生产中的不同流程(遵循某些假设工具可能需要的特定条件)?

    4. 正如您可能已经注意到的那样,这些主题对我来说非常含糊,所以每一个澄清都会非常感激!

0 个答案:

没有答案