我相当精通用于异步、事件驱动、非阻塞编程模型的Node.js编程范式。我现在正试图了解在虚拟机的云计算生态系统中我可以将Node.js的使用扩展到多远。
在我的 Web 仪表板的服务器端,我将 Node.js 作为 http 服务器运行并与 Cassandra 数据库进行交互。用户通过浏览器仪表板与我们的云服务进行交互。在客户端和服务器之间打开的 Websocket 将允许服务器端向用户的仪表板发起操作。
用户的部分任务活动将是为工作流活动生成基于云的虚拟机。这些虚拟机将执行需要与系统的主 Cassandra 数据库交互的应用程序。
我非常希望对以下Node.js架构方案有一些反馈:
当用户生成虚拟机时, VM 会使用在 VM 上运行的 Node.js 实例启动。该VM 的 Node.js 实例主动打开一个 Web 套接字,其中系统的主 Node.js 实例正在运行或分配给该 VM(可能有多个 Node.js 实例可用于与 Cassandra 数据库通信),即一个Node- to-Node websocket 是从 VM 的 Node.js 实例建立的。
VM 的 Node.js 实例设置了一系列要在 VM 内部监视的事件。系统的 Node.js 实例还设置了一系列要从 VM 的 Node.js 实例监视的事件。当 VM 的 Node.js 实例事件触发完成时,就会启动并完成所需的 Cassandra DB 操作。系统的 Node.js 实例还监视来自 VM 的某些事件,以启动 Cassandra DB 操作。
实际上,我在这里要问的是:通过 websockets 建立 Node.js-2-Node.js 通信通道并且两个 Node 实例都与同一个后端数据库通信是否有意义?
在这种配置中,我似乎能够设置一个高度灵活的双向 VM 事件系绳,它可以使用来自系统的 Node.js 实例和 VM 的节点的 DB 记录的操作来监视/侦听规定的事件。 js 实例。
我在这里描述的是一个非典型和荒谬的场景吗?在这个用例中是否有更好的方法来使用 Node.js?有没有更合适的组件配置?
亲切的问候,马克