我将一个大的应用程序分成几个进程,我希望每个进程都能相互通信。
现在它将在同一台服务器上,但以后同一本地网络上的几个服务器将有几个进程需要相互通信。(指一台机器上的服务,同一台vpc上的其他机器上的服务)
所以..。我的原始选项是tcp或unix sockets。我知道,只有当你在同一台服务器上时,Unix套接字才有用。但我们正在考虑编写我们自己的实现,在同一服务器上的进程将在unix套接字上进行通信,以及在使用tcp进行通信的服务器之间进行通信。
这值得吗?当然,tcp套接字比unix套接字慢。因为它不会通过网络,也不会与tcp相关的数据一起打包。问题是增加了多少?我找不到tcp和unix套接字之间基准测试的在线证据。如果tcp增加了3%-5%的开销,这是很酷的,但它能比这个更多吗?我想从大型项目的经验中学习。多年来一直在找其他人,但没有找到任何相关的东西。
接下来..。
我们的项目是一个NodejS项目。
有些人可能会说我可以使用代理处理消息,所以我尝试使用nats.io与node-ipc (https://www.npmjs.com/package/node-ipc)进行比较,我发现node-ipc快4倍,但nats具有很酷的发布-订阅功能……但是性能很重要。
所以我有很多选择,没有具体的决定。
任何关于这个问题的信息都将不胜感激。
https://stackoverflow.com/questions/41447064
复制相似问题