Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure SSE订阅服务器-分布在多个服务器上?_Clojure_Cluster Computing_Server Sent Events_Pedestal - Fatal编程技术网

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

Clojure SSE订阅服务器-分布在多个服务器上?,clojure,cluster-computing,server-sent-events,pedestal,Clojure,Cluster Computing,Server Sent Events,Pedestal,看着这个框架的演示——它依赖于内置的底座——我注意到: 基本上,这会保留订阅者的映射(EventSource客户端的映射)并向他们发送聊天事件 我的问题是-假设您希望跨多个服务器扩展此应用程序。做这件事的idomatic模式是什么?(希望在Clojure基座中——但可能是整个Java领域的解决方案)目前没有免费的午餐/银弹用于多节点并行。大多数人使用SOA方法(REST、队列等)来并行化他们的应用程序。当然,总的来说,你会失去协调资源访问的能力,而解决方法也可能是黑客的。我听说Immutant(

看着这个框架的演示——它依赖于内置的底座——我注意到:

基本上,这会保留订阅者的映射(EventSource客户端的映射)并向他们发送聊天事件


我的问题是-假设您希望跨多个服务器扩展此应用程序。做这件事的idomatic模式是什么?(希望在Clojure基座中——但可能是整个Java领域的解决方案)

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

Hmm,这可能会有所帮助。
(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})