【发布时间】:2020-09-12 20:17:21
【问题描述】:
所以我的项目有一个微服务架构,如果我有 2-3 个服务在运行。我需要根据在这些服务上触发的一些事件调用一个操作。
如何使用 nodejs 事件发射器类或任何其他类似服务来实现这一点。 socket.io 是替代品吗?
或者有可能吗?
【问题讨论】:
-
如果这些是我认为的微服务类型,那么它们位于不同的进程中,您不能使用 eventEmitter 在它们之间进行通信。 eventEmitter 用于单个 node.js 进程。您将不得不使用某种进程间通信来在微服务(http 请求、webSocket 或 socket.io 消息、nodejs 子进程
sendMessage()等)之间传递信息。如果您的微服务都在同一个 node.js 进程中,那么就可以使用 eventEmitter 事件来共享数据了。 -
要处理的数据量是多少?期望吞吐量?希望您的服务具有可扩展性和容错性?
-
它基本上是某种日志写入,但不完全是这样。我们从一个服务调用一个函数,但函数体在另一个服务中,它是从多个服务调用的。而且它们都是单独托管的。
标签: node.js events microservices