我正在市场上寻找一个良好的开源网络,基于Pub/Sub (观察者模式)库。我还没找到我喜欢的:
如果这样一套方案能适用于以下几个方面,那就太好了:
为了好玩,我有创造了我自己。有什么想法?
发布于 2009-07-10 22:28:34
您可能需要查看RabbitMQ。
发布于 2010-08-23 08:15:45
正如前面的文章指出的,您的选项之一是OpenSplice DDS,它是OMG标准的开源实现(NDDS实现的相同标准)。
与您正在考虑的其他中间件相比,OpenSplice的主要优点可以概括为:
我想了解的是你对IDL有什么问题。DDS使用IDL作为独立于语言的方式来指定用户数据类型.但是DDS并不局限于IDL,如果您愿意的话,您可以使用XML。指定数据类型并将它们的表示形式与特定的编程语言分离的优点是中间件可以:
(1)免除序列化数据的负担,
(2)产生非常有效的时间/空间序列化,
(3)确保端到端类型的安全,
(4)允许对整个数据类型(不仅仅是JMS中的标头)进行内容过滤,
(5)启用跨编程语言(如Java、C/C++、C#等)的联机互操作性。
根据您正在设计的系统或应用程序,上面的一些属性可能并不有用/相关。在这种情况下,您可以简单地生成一个,几个,"DDS类型“,这是您的序列化数据持有人。
如果考虑到JMS,它为您提供了5种不同的主题类型,您可以使用这些主题类型发送数据。使用DDS,您也可以这样做,但您可以灵活地准确地定义主题类型。
最后,您可能需要查看Scala和DDS上的这个博客条目,以便更详细地讨论类型和静态类型为什么是好的,特别是在分布式系统中。
-AC
发布于 2009-07-10 22:34:53
我们使用RTI DDS实现。它需要花费$$,但它支持许多服务质量参数。
有一个名为OpenDDS的免费直接合成实现,但我没有使用它。
如果目标语言是静态类型的,我看不出您如何才能避免预先定义数据类型的需要。
https://stackoverflow.com/questions/1112279
复制相似问题