SSE订户 - 分布在多个服务器上?

时间:2013-07-27 13:03:35

标签: clojure cluster-computing server-sent-events pedestal

查看sse-chat框架的Clojure Pedestal演示 - 它依赖于基座中的SSE features - 我注意到the following code

(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 个答案:

答案 0 :(得分:1)

目前没有免费的午餐/银弹用于多节点并行。大多数人使用SOA方法(REST,队列等)来并行化他们的应用程序。当然,在大型企业中,您失去了协调资源访问的能力,而且解决方案可能是hackish。我听说Immutant(Jboss)的XA事务很好,它们可以自动应用于缓存和消息传递的工作方式,但是没有亲自使用这种方法。您可能会发现另一个有用的工具是Storm,它允许您为分布式处理设置拓扑,添加一些声明性抽象来代替繁琐的手动开发和等效服务架构的配置。