2013-07-27 9 views
2

望着sse-chat演示的Clojure Pedestal框架 - 這在立柱依靠SSE features - 我注意到the following codeSSE訂戶 - 分佈在多個服務器上?

(defn publish 
    [request] 
    (doseq [sse-context @subscribers] 
    (try 
     (sse/send-event sse-context "message" (-> request :form-params (get "msg"))) 
     (catch java.io.IOException e 
     (remove-subscriber sse-context)))) 
    {:status 204}) 

這基本上保持地圖的用戶的(圖一EventSource的客戶),併發送聊天事件他們。

我的問題是 - 假設你想在多個服務器上擴展這個應用程序。什麼是這樣做的一種習慣模式? (希望在Clojure Pedestal中 - 但可能是Java頻譜中的一種解決方案)

回答

1

目前還沒有用於多節點並行的免費午餐/銀彈。大多數人使用SOA方法(REST,隊列等)來並行化他們的應用程序。當然,在很大程度上,你失去了協調資源訪問的能力,並且解決方法可能會變得駭人聽聞。我聽說了關於Immutant(Jboss)的XA事務的好處,它自動適用於他們的緩存和消息傳遞如何工作,但並未親自使用這種方法。另一個您可能會覺得有用的工具是Storm,它允許您爲分佈式處理設置一個拓撲,添加一些聲明式抽象來代替繁瑣的手動開發和提供等效的服務體系結構。

相關問題