关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
7年前关闭。
Improve this question
我正在开发一个 Web 应用程序,我在多个容器化微服务中将其解耦。我现在有大约 20 个服务,但整个系统肯定需要 300 多个。现在和将来的大部分服务都不需要整台机器,所以我将在同一台主机上部署多个服务。我想知道其他人如何处理服务间通信。我首选的方式是使用基于 REST 的通信,但是......
在同一台机器上运行多个 Web 服务器不是太重了吗?我正在使用 Ruby 进行开发,但即使是像 Puma 这样的轻量级 Web 服务器也会消耗大量内存
我开始使用 UNIX 套接字编写自定义通信 channel 。因此,我将启动一个 Web 服务器,我的“路由器”应用程序将通过 UNIX 套接字与该主机上当前正在运行的服务进行通信。但我不知道是否值得付出努力,除此之外,所有服务都必须编写和定制才能使用这种通信。我相信很难使用像 Ruby-on-Rails 或其他框架这样的框架,即使是不同的语言也是微服务架构的全部吸引力。我觉得我正在尝试重新发明轮子。
那么,有人可以提出更好的方法或投票给我目前的方法吗?
我很感激任何帮助,
谢谢,
最佳答案
看起来您可能想查看 docker swarm ,他们正在积极研究这些用例。如果您真的关心性能,我不建议您建立自己的沟通 channel ,坚持使用 http 或者使用 spdy。您介绍的任何内容都会使使用这些即将推出的解决方案变得更加困难。另外请记住,在大多数情况下,您不需要重型 Web 服务器,您始终可以使用 nginx 或 haproxy 在您的一个或多个服务之上引入一层。
关于ruby - 在同一主机上托管多个微服务的设计方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329738/