繁体   English   中英

使用Node-Js作为消息传递层

[英]Using Node-Js as message passing layer

  (client) node-js http request  <-----------> node-js http listen (server)
             ^                   100/1000 MBit/s     ^
             |                       LAN             |
             v                                       v
     a file in ramdrive                         a file in ramdrive 
            ^                                        ^
            |                                        |  
            v                                        v
        C# program requesting                     C# or Java program      
           compute on data                           computing

比...更容易

(client)C# tcp ip <--------------------------------->C#/Java tcp ip (server)
           socket      100/1000 Mbit/s LAN                         socket

在错误处理方面(例如半开连接,确认数据包管理和选择正确的窗口/缓冲区大小)和可扩展性(对于使用树状连接的10-100台服务器)?

如果node-js层仅用于I / O,那么对于基本交换机/路由器上的集群(例如,不是infiniband),它会比MPI更好吗?

现在, 我正在尝试使用tcp-ip选项并且已经有太多的异常来处理并且远未完成 由于桌面操作系统存在最大连接,因此阵列的序列化还需要检查服务器和客户端的字节顺序以及在发送/计算数据之前进行更多的平衡。 在任何地方它都说异步是最好的。 我刚开始使用1个连接版本的1个线程。 线程版本还具有持久的本地数据来保存计算设备信息和编译的内核(对于opencl)。

如果我理解正确,mpi和node-js都需要将它们的运行时安装在服务器和客户端上,但tcp-ip不需要这样的东西。 但这不会平衡其他困难吗?

在node-js和C#之间添加ramdrive是我的想法,因为从node-js(和C#)访问文件看起来很容易,而且比tcp连接要少得多。 当它只是传递数据时,Http监听也几乎是node-js中的单行。

如果不知道你正在做什么的具体细节,很难推荐一个特定的解决方案......但我怀疑你正在重新发明一个解决方案。

看看Redis 大多数语言都有客户端库,它可以在网络上运行,处理各种数据类型,甚至支持pub / sub。 它的构建非常高效...... Redis的开发人员为许多应用程序做了很多正确的权衡。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM