java - 可扩展且高性能的消息 channel

标签 java udp message-queue multicast

我正在开发代理来从不同来源收集数据,数据应该以高频率(例如每 15 秒)发布到 channel 。 REST 绝对不是一个解决方案。该要求显然是即发即忘,因为与状态回复无关。

吞吐量更重要,消息丢失最多 5% 是可以接受的。

我遇到的可能的解决方案是

  • 消息总线
  • 组播
  • UDP

任何替代方案,请提出。

最佳答案

恕我直言,高频太快了,看不到,15秒你就能看到。发送一条消息到世界各地并返回大约需要 0.5 秒。您只能看到大约 15 毫秒。如果你谈论的是 15 微秒,那绝对是高频。我有一个持久消息传递解决方案,延迟约为 0.1 微秒,即 0.0000001 秒,但我不建议您需要它。

如果您需要的只是每 15 秒一条消息,我会使用想到的最简单的解决方案。我会尝试 ActiveMQ,我发现它是最简单的工作方式之一。您应该能够实现高达每秒 20,000 条消息的速率和大约 0.01 秒的适当延迟,并且您不应该丢失任何消息。

关于java - 可扩展且高性能的消息 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945901/

相关文章:

java - 如何在具有多个标签的嵌入式 Neo4j 中获取节点?

c# - Java 与 C# Web 服务客户端

c++ - RTCP/RTP 通讯问题

c - 从 POSIX 队列接收消息时如何节省内存?

java - 在 Android 上显示简单的位图

c++ - Qt - QUdpSocket 绑定(bind)不断失败

linux - UDP如何使用绑定(bind)端口从服务器端的不同端口接收

boost 消息队列

oracle - Maximo MAXINTMSGTRK 表 : How to extract text from MSGDATA column? (HUGEBLOB)

java - 如果在 "sleep"期间发生完整 GC,Thread.sleep 将如何表现?