【问题标题】:message passing and signaling in distributed system分布式系统中的消息传递和信令
【发布时间】:2011-08-17 11:36:20
【问题描述】:

我有一个分布式视频分析系统,它由以下部分组成:

1. feature extraction: generated lots of features(20+) from each frame of the video
2. multiple detectors(in different machine): 
  * Each of them will get a subset of feature
  * Each of them needs the features from multiple frames. 
  * Eg. Detector 1 needs feature 1-5 from 3 frames to start processing; Detector 2 needs feature 2-8 from 8 frames to start processing

我的问题是:如何在特征提取块和多个检测器之间进行通信,最好是实时的?我一直在研究事件总线,但它只适用于一个进程,Hadoop 中的 ZooKeeper 会是更好的解决方案吗?

我正在使用 Java。欢迎提出任何建议。

【问题讨论】:

  • 一个特征有多少数据?像每个功能 8 个字节?如果您的数据非常少,您可以做很多简单的事情,例如将所有特征广播到所有检测器。

标签: java video distributed message apache-zookeeper


【解决方案1】:

在 Java 中,您可以考虑使用 RabbitMQ 消息总线。有一个库,Java bindings

RabbitMQ 基于经过验证的 平台,提供异常高 可靠性、可用性和 可扩展性以及良好的吞吐量 和延迟性能是 可预测和一致的。它有一个 紧凑、易于维护的代码库 允许快速定制和热 部署。有广泛的 用于管理、监控的设施, 控制和调试,它是 由全方位的支持 商业支持服务和 活跃的社区开发包 扩展核心系统。

【讨论】:

  • 许可证是 Mozilla 公共许可证,是吗?如果是这样,它应该是完全允许企业使用的许可证。
  • 兔子的宣传并不是真的。它不像大多数人期望的那样高度可用——队列分布在多台机器上以承受节点故障。它的集群旨在提高重负载下的速度,但不会使其在中断事件中更可用。
  • @Drew R - 嗯?为抵御节点故障而构建的东西怎么可能在发生中断时也无助于提高可用性?
  • 那一定是新功能。集群支持至少在 1.x 中不能容忍节点故障,我认为在 2.x 的早期版本中。这纯粹是为了提高吞吐量。
猜你喜欢
  • 1970-01-01
  • 2015-01-11
  • 2018-05-16
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多