我正在将一个大型应用程序分解为多个进程,并且我希望每个进程能够相互通信。
现在它将在同一台服务器上,但稍后同一本地网络上的几台服务器将有几个需要相互通信的进程。(表示在一台服务器上提供服务,在同一 vpc 上的另一台服务器上提供服务)
所以..我的原始选项是tcp
or 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 具有很酷的发布-订阅功能……但性能很重要。
所以我有很多选择,没有具体的决定。
任何有关该问题的信息将不胜感激。