2011-10-04 67 views
3

我正在編寫一個充當代理的rails應用程序,因此在此稱爲代理。這個想法是,用戶應該能夠通過Web UI管理他的服務器,即使他的服務器出現故障,它也總是可以正常運行。連接管理器在哪裏適合導軌?

要做到這一點,代理需要始終保持與服務器的開放連接。爲此,我創建了一個使用daemonz的後臺進程,它接受來自服務器的輸入連接,併產生不斷在套接字上監聽的線程。

現在我有兩個問題:我需要能夠從我的導軌控制器發送這些套接字上的消息,我需要知道使用哪個套接字才能連接正確的服務器。我打算用ConnectionManager這個類來爲我處理這個問題,但我不知道這樣的類在rails結構中的位置,我不知道如何使對象和套接字都可用於這兩個進程。

這使得兩個問題:

  1. 哪裏連接管理器屬於?
  2. 如何在進程之間共享連接管理器和套接字?

如果您只知道第一個問題的答案,請繼續並回答。我有可能爲第二個問題創建一個單獨的帖子。

回答

0

這似乎不是一個有用的東西來建立在Rails/Ruby中。

可能更有用的是Rails管理應用程序,該應用程序將haproxy之類的現有負載平衡器/代理配置爲封面。

您可以在Rails應用中映射服務器/端口/配置,然後將其投影到haproxy配置中並重新啓動負載均衡器。一個很好的開始將是haproxy-tools gem,它允許你解析/生成一個haproxy配置文件。

重寫自己的負載平衡器並沒有意義,即使您打算這麼做,Ruby/Rails也是一個糟糕的技術堆棧。