【问题标题】:Where does a connection manager fit in rails?连接管理器在哪里适合 rails?
【发布时间】:2011-11-30 23:19:01
【问题描述】:

我正在编写一个充当代理的 Rails 应用程序,因此在此称为代理。这个想法是,用户应该能够通过 Web UI 管理他的服务器,即使他的服务器关闭,它也始终处于启动和运行状态。

为此,代理需要始终保持与服务器的开放连接。为此,我使用daemonz 创建了一个后台进程,该进程接受来自服务器的传入连接并生成不断侦听套接字的线程。

现在我有两个问题:我需要能够从我的 rails 控制器在这些套接字上发送消息,并且我需要知道要使用哪个套接字才能到达正确的服务器。我打算使用ConnectionManager 类来为我处理这个问题,但我不知道这样的类在哪里适合rails 结构,我不知道如何使对象和套接字对两个进程都可用.

这提出了两个问题:

  1. 连接管理器属于哪里?
  2. 如何在进程之间共享连接管理器和套接字?

如果您只知道第一个问题的答案,请继续回答。我可能应该为我的第二个问题创建一个单独的帖子。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 sockets daemon


    【解决方案1】:

    这似乎不是在 Rails/Ruby 中构建的有用东西。

    Rails 管理应用程序可能更有用,它在后台配置了现有的负载平衡器/代理,例如 haproxy。

    您可以在 Rails 应用程序中映射服务器/端口/配置,然后将其投影到 haproxy 配置中并重新启动负载平衡器。 haproxy-tools gem 是一个很好的起点,它允许您解析/生成 haproxy 配置文件。

    重新编写自己的负载均衡器是没有意义的,即使你打算这样做,Ruby/Rails 也是一个糟糕的技术堆栈。

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2011-05-27
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多