考慮使用Nginx作爲反向代理構建的井字遊戲,並且具有多個Rails後端。每個客戶端都會與一些Rails後端建立一個websocket連接。如果兩個玩遊戲的客戶端分別連接到不同的Rails後端,則發送到一個後端的移動需要路由到另一個後端,以便可以將其推送到另一個WebSocket上,如下圖所示。Rails進程之間的通信
In Rails在兩個Rails後端之間進行通信的慣用方式是什麼?
考慮使用Nginx作爲反向代理構建的井字遊戲,並且具有多個Rails後端。每個客戶端都會與一些Rails後端建立一個websocket連接。如果兩個玩遊戲的客戶端分別連接到不同的Rails後端,則發送到一個後端的移動需要路由到另一個後端,以便可以將其推送到另一個WebSocket上,如下圖所示。Rails進程之間的通信
In Rails在兩個Rails後端之間進行通信的慣用方式是什麼?
在這種情況下,你應該建立獨立的WebSocket服務器和用戶和Rails的服務器連接到它。這樣你就可以處理來自一臺服務器的所有用戶而不用擔心分片。
在高流量情況下,您還可以設置多個WebSocket服務器,並在它們之間實現某種類型的隊列或消息總線,以傳播新消息 - 例如僅處理傳播消息的主服務器和將連接的從屬服務器並將所有來自用戶的消息發送給它。請注意,在這種配置中,主服務器不應處理來自用戶和服務器的連接,僅用於在從屬之間傳播消息。最後,直接回答你的最後一個問題,通常不需要直接在Rails服務器之間聯繫 - 與WebSocket服務器相反,它們是基於請求響應服務的,所以在大多數情況下通過數據庫交換信息就足夠了。如果你真的需要立即改變,那麼像AMQP這樣的解決方案應該有所幫助。