使用 WebSocket vs XMPP vs MQ 的实时数据显示解决方案

Solution for Real Time Data display using WebSocket vs XMPP vs MQ

我正在尝试开发一个在线拍卖平台。

与特定拍卖相关的客户将在其中看到实时数据,并且他们还可以相互通信。

我正在考虑 Java 作为我的后端平台 它将基于 SOA。 我正在寻找诸如可用于向客户显示实时数据的最佳技术解决方案之类的意见。

到目前为止我已经比较喜欢了-

哪种协议是处理 100 万并发用户的实时广播数据 + 聊天的好方法。

我会选择像 Vert.x. See this blog 这样的事件总线系统,为什么它可能满足您的需求。

此方法基于 MessagingQueue 的解决方案不可行,因为它不能保证实时传递。

WebSocket 和 XMPP 是协议,您必须根据需要集成到您的解决方案中的功能进行比较:

广播消息

一对一消息传递

群发消息

最后,我们决定使用基于多房间的 Atmosphere web socket 进行实时数据广播,并使用 Ejabberd 进行聊天功能。

对于大数据的实时处理Atmosphere based web socket是一个很好的方法,可以使用。与基于 Socket.IO 的 Web 套接字不同,Atmosphere 处理底层服务,通过及时发送心跳消息使事件总线保持活动状态,因此您不必关心它。

对于聊天应用程序,基于 Ejabbered 的 XMPP 定义明确。事实上,可以根据您的优势更改架构,并且 JAVA 的实施很容易。