在同一主机上托管多个微服务的设计方法

Design approach for hosting multiple microservices on the same host

我正在开发一个 Web 应用程序,我将它分离到多个容器化微服务中。我现在有20个左右的服务,但整个系统肯定需要300多个。现在的大部分服务和未来的一些服务都不需要整台机器,所以我会在同一台主机上部署多个服务。我想知道其他人如何处理服务间通信。我的首选方式是使用基于 REST 的通信,但是...

在同一台机器上安装多个网络服务器 运行 是不是太重了?我在 Ruby 中进行开发,但即使像 Puma 这样的轻量级 Web 服务器也会消耗大量内存

我开始使用 UNIX 套接字编写自定义通信通道。因此,我将启动一个 Web 服务器,我的 "router" 应用程序将通过 UNIX 套接字与该主机上当前的 运行 服务进行通信。但我不知道这是否值得付出努力,除此之外,所有服务都必须编写和定制才能使用这种通信方式。我相信很难使用任何框架,如 Ruby-on-Rails 或其他框架,甚至是不同的语言,这是微服务架构的全部吸引力。我觉得我正在重新发明轮子。

那么,有人可以提出更好的方法或为我当前的方法投票吗?

感谢任何帮助,

谢谢,

您可能想研究一下 docker swarm,他们正在积极处理这些用例。我不建议建立你自己的沟通渠道,坚持使用 http 或者如果你真的关心性能的话可以使用 spdy。您介绍的任何内容都会使使用这些即将推出的解决方案变得更加困难。另请记住,在大多数情况下您不需要重型 Web 服务器,您始终可以使用 nginx 或 haproxy 在一个或多个服务之上引入一层。