【问题标题】:Communication Mechanisms that are both Decoupled and Low-Latency解耦和低延迟的通信机制
【发布时间】:2009-04-08 22:03:41
【问题描述】:

有没有人在消息传输方面具有解耦(发送者和接收者不知道/不关心彼此)和低延迟的分布式和可能的远程交互事件的经验?它们存在吗?

我正在研究/开发用于可控制软件的有形交互设备(即物理按钮、旋钮、滑块、RFID 传感器/执行器)的交互技术,这些软件可能驻留在或不驻留在与设备连接的同一系统上。

一般来说,某种类型的 pub/sub 方法是我想要的方式,因为我希望每个实体只关心它生成的事件和它自己的功能。更不用说,设备可能会不确定地连接和断开连接。

该领域的一项流行技术是EventHeap,它建立在IBM 的元组空间实现TSpaces 之上。您将事件推入一个袋子,然后可以将其取出。但是元组空间实现的典型性能限制是高延迟;有时是紧张或不确定的延迟。这对于细粒度的交互是不可接受的。

EventHeap Source

【问题讨论】:

  • 更新:自从我提出这个问题以来,我一直在尝试各种版本的 OpenAMQ 的 AMQP 实现。由于各种原因,我不太满意,主要是因为消息代理的依赖性。现在我正在使用零消息队列:zeromq.org 它支持通过 TCP、UDP、多播、进程间和内部通信通道的 pub-sub、request-reply 和对等消息传递。

标签: networking remoting communication publish-subscribe


【解决方案1】:

有 MQ(例如 Apache 的 ActiveMQ)可以解决一些问题:

  • 发送者和接收者不需要相互了解
  • 发布/订阅和点对点

不太确定您在谈论的设备功能是什么,可能过于重量级,但可能值得一看。


更新:实际上,这里有一个指向 IBM's MQ for 'wireless and mobile applications' 的链接,这也可能有助于查看。

【讨论】:

  • 我实际上已经考虑过 AMQP,但我需要进行测试以了解运行服务器的轻量级程度。异步消息队列协议(amqp.org)是一个开源的、语言无关的消息传递协议。有 C++、java、python 和 ruby​​ 的实现,以及到 JMS 的桥梁。
  • 对您的测试结果感兴趣 - 完成后有机会更新吗?
猜你喜欢
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多