【问题标题】:SSE subscribers - distributed across multiple servers?SSE 订户 - 分布在多个服务器上?
【发布时间】:2013-07-27 13:03:34
【问题描述】:

查看Clojure Pedestal 框架的sse-chat 演示——它依赖于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 范围内的解决方案)

【问题讨论】:

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


【解决方案1】:

目前没有免费的午餐/多节点并行性的灵丹妙药。大多数人使用 SOA 方法(REST、队列等)来并行化他们的应用程序。当然,在大环境中,您将失去协调对资源的访问的能力,而且变通办法可能是骇人听闻的。我听说过有关 Immutant (Jboss) 的 XA 事务的好消息,这些事务自动应用于它们的缓存和消息传递的工作方式,但没有亲自使用过这种方法。您可能会发现另一个有用的工具是 Storm,它允许您为分布式处理设置拓扑,添加一些声明性抽象来代替繁琐的手动开发和提供等效服务架构。

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2019-04-07
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多