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

时间:2018-10-24 11:10:35

标签: java rabbitmq xmpp ejabberd mongoose-im

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

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

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

到目前为止,我已经比较了Like-

  • 基于XMPP的解决方案,例如(Mongoose / Ejabberd / OpenFire)
  • 基于Websocket的解决方案,例如Atmosphere
  • RabbitMQ / ActiveMQ之类的消息缓冲区

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

基于MessagingQueue的解决方案不可行,因为它不能保证实时交付。

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

广播消息

一对一消息传递

群发消息

答案 2 :(得分:0)

用于大数据的实时处理基于大气的Web套接字是一种可以使用的好方法。与基于Socket.IO的Web套接字不同,Atmosphere通过及时发送心跳消息来处理使事件总线保持活动状态的基础服务,因此您不必进行任何处理。

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

答案 3 :(得分:-1)

最后,我们决定使用基于多房间的Atmosphere Web套接字进行实时数据广播,并使用Ejabberd进行聊天。