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

时间:2015-02-04 19:28:01

标签: ruby web-applications docker unix-socket microservices

我正在开发一个Web应用程序,我将其与多个容器化微服务分离。我现在有大约20个服务,但整个系统肯定需要超过300个。现在大多数服务和未来的一些服务不需要整个机器,因此我将在同一主机上部署多个服务。我想知道其他人如何处理服务间通信。我首选的方法是使用基于REST的通信,但是......

在同一台计算机上运行多个Web服务器是不是太沉重了?我正在开发Ruby,但即使是像Puma这样的轻量级Web服务器也会占用大量内存

我开始使用UNIX套接字编写自定义通信通道。所以,我将启动一个Web服务器,我的“路由器”应用程序将通过UNIX套接字与该主机上当前运行的服务进行通信。但我不知道是否值得付出努力,最重要的是,所有服务都必须编写和定制才能使用这种通信。我相信很难使用像Ruby-on-Rails或其他任何框架,甚至是不同的语言,这对微服务架构来说是一个整体的吸引力。我觉得我正在努力重新发明轮子。

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

我感谢任何帮助,

谢谢,

1 个答案:

答案 0 :(得分:1)

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