我正在将一个大型应用程序分成几个进程,并希望每个进程之间进行通信。目前它将在同一台服务器上,但以后在同一本地网络上的多个服务器将具有需要彼此通信的多个进程(表示在同一VPC上的另一个服务器上的服务与该服务器上的服务)。因此,我的原始选项是TCP或Unix套接字。我知道Unix套接字只有在您在同一台服务器上时才有用。但我们正在考虑编写自己的实现,使在同一服务器上的进程将在Unix套接字上通信,在服务器之间通信时将使用TCP。值得吗?当然,TCP套接字比Unix套接字慢...因为它不通过网络并且不包含TCP相关数据。问题是它会增加多少开销?我找不到TCP和Unix套接字之间的基准测试证明。如果TCP增加3%-5%的开销,那很好,但它可能更多吗?我想从大型项目的经验中学习...多年来其他人的经验,但没有找到任何相关的东西。
接下来...
我们的项目是一个Node.js项目。
接下来...
我们的项目是一个Node.js项目。
有些人可能会说我可以使用代理来进行消息传递,因此我尝试了使用 nats.io
与 node-ipc (https://www.npmjs.com/package/node-ipc) 进行比较,我发现 node-ipc 的速度快了 4 倍,但 nats 具有很酷的发布-订阅功能... 但性能也很重要。
所以我有很多选择,没有确定的决定。
任何关于这个问题的信息都将不胜感激。