【问题标题】:Distributed data structures in Java [closed]Java中的分布式数据结构[关闭]
【发布时间】:2011-03-19 22:16:34
【问题描述】:

我打算用 Java 开发自己的消息队列实现,我需要将队列内容分发到多个服务器,以便提供可靠性和冗余。

除此之外,我还需要将队列内容保存到文件系统中。

谁能告诉我最适合保存队列内容的分布式数据结构实现是什么?

注意:该数据结构必须为我提供消息排序功能。这意味着我需要根据消息到达的顺序接收消息。同样在阅读消息时,它应该处于“锁定”状态,以便其他消费者在第一个消费者完成阅读过程之前无法阅读它

【问题讨论】:

  • 您需要实现自己的消息队列实现而不是使用现有的实现的任何特殊原因?如果您能告诉我们您查看过哪些现有解决方案以及它们为何不适合您,这可能有助于我们确定您的实际需求以及最适合他们的解决方案。
  • 只需使用Hazelcast Distributed Queue。它是纯 Java peer2peer 队列,由可以持久化的分布式地图实现支持。

标签: java data-structures message-queue


【解决方案1】:

您是否查看过许多现有的 Java 消息队列实现?维基百科lists 许多开源实现。在我看来,现有的、经过全面测试的消息队列是保存队列内容的最佳位置:)

如果您绝对想编写自己的代码,那么从最适合您需求的开源解决方案开始可能会回答您关于哪些数据结构运行良好的大部分问题。

【讨论】:

  • 感谢 Peter,我经历了几个消息队列实现,我一直在寻找可靠的消息传递和持久订阅功能。似乎他们中的大多数都在使用基于文件的持久性来存储消息和代理状态。但是在这里,我计划将分布式存储用于 MQ 后端,并且我想让它与许多分布式存储类型一起“可插入”。除此之外,我还需要为此队列提供对丰富的传输协议(例如 REST、XMPP)的支持。这些功能很难实现,但至少我需要尝试一下。谢谢
  • ActiveMQ 支持可插拔的存储后端和传输机制(包括 REST 和 XMPP)。这将使您可以灵活地实现自己的存储并传输它,而无需编写完整的消息队列实现。
  • @Dunith Dhanushka “分布式存储”是什么意思? ActiveMQ 允许您以多种方式存储数据,还支持主/从复制等集群选项。
猜你喜欢
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多