首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Java EE应用程序中通过消息队列对临时数据进行后台处理

在Java EE应用程序中通过消息队列对临时数据进行后台处理
EN

Stack Overflow用户
提问于 2011-10-26 20:08:13
回答 1查看 481关注 0票数 1

我正在构建一个Java EE web应用程序,它也有一个JAX-RS API,这样其他网站的插件就可以发送数据给它,把它想象成一个分析服务器,从不同的客户端网站接收数据,并有自己的管理界面,可以在那里查看统计数据。

客户端发送的数据当前保存在数据库的临时表中,待后续进一步处理后,保存到保存统计数据的实表中。

我应该如何实现该数据的后台处理?我应该自己创建线程,还是应该使用消息队列系统(我已经研究过RabbitMQ,它看起来很有前途,但是我不确定它是否适合嵌入Java应用程序)

此外,我应该将临时数据(来自用户的一块信息,作为JSON/XML字符串)保存在当前数据库中,或者您是否认为保存在另一个临时数据库中更合适,例如,我又一次听说过像Redis、mongodb等nosql数据,但是无法确定它们是否适用于此。

最后,如果我应该使用消息队列,请求应该由消息队列还是JAX-RS来处理?我对JAX-RS的担忧是,它可能没有队列那么高的性能,正如我所说的,我并不真的需要API,我只想从客户端网站获得一个base64编码的字符串(包含各种统计信息)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-01 03:19:39

这里有很多问题:)我将尝试按顺序回答:

  • 您将无法将RabbitMQ嵌入到您的JavaEE应用程序中,因为它运行在Erlang上。如果需要在JavaEE应用程序中嵌入消息代理,则更愿意考虑使用ActiveMQ或HornetQ。
  • 如果使用消息传递系统的持久存储功能,则不需要将传入消息存储在临时数据库中。使用消息传递系统作为传入消息的主要保管者的
  • 也将为您的线程问题提供答案:在消息队列上使用1-n个并发使用者(即,您所选择的特定消息传递系统的并发使用者)来处理消息并将结果写入统计database.
  • Finally,要三思而后行,直接公开消息系统而不是在HTTP facade后面公开消息系统(在您的情况下是JAX-RS),因为并不是所有的客户端都有能力使用正确的协议(如果您使用RabbitMQ,AMQP有很好的跨平台支持)。此外,直接公开它也可能是一个安全问题。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7902343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档