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

标签 ruby web-applications docker unix-socket microservices

关闭。这个问题是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/

相关文章:

linux - 自动构建 c/c++ 程序的 Web 界面?

现在流行的java管理客户端

javascript - 通过在外部 js 文件中存储 javascript 变量来缓存 HTML 内容?

docker - Spring Cloud 服务查找错误 : Load balancer does not have available server for client

postgresql - 从外部连接到 docker 容器中的 Postgresql

css - @import 的 SASS/SCSS 自定义 css 表

ruby - 在 Windows 上从 `My Documents` 打开文件

ruby-on-rails - 使用 minitest-rails 和 rails 4.1 的 Controller 测试路由错误

docker - 无法安装 golint 包 : wrong import path

ruby-on-rails - Ruby showel 运算符 vs (? :) conditional