【问题标题】:Managing multiple Java Applications管理多个 Java 应用程序
【发布时间】:2012-04-20 15:05:08
【问题描述】:

现在我们正在研究开发一个实时视频聊天应用程序,它将由视频 (wowza)、网络 (spring mvc)、聊天 (rabbitmq)... 部分组成。我想将每个部分分成单独的应用程序。

让这些应用程序进行通信的最佳方式是什么?我读到 Rabbitmq 作为消息系统,是一种扩展和连接应用程序的流行方式。这是社区经常使用的东西吗?

此外,每个应用程序都需要身份验证,我们希望为此使用 Spring 安全性,让所有不同的应用程序使用一个安全点的最佳方法是什么。 Rabbitmq 适合这个,还是坚持使用 jms

我已经离开Java世界有一段时间了,我有点过时了,请帮助我。

【问题讨论】:

  • 未来的艰难决定!我对 Wowza 了解不多,但您是否打算通过这个通用消息总线传输/传输视频?暂时把安全位放在一边,你需要这个消息层做什么?另外,您会 100% 使用 java,还是让非 java 参与者也发送/接收?
  • 感谢回复,我们希望只使用java,但最终可能会使用一些c++进行视频渲染。所以我们要为此做好准备。因此,要回答您的问题,我们还需要为其他语言做好准备。还有消息总线,例如:用户在聊天(第 2 个应用程序)的同时开始视频聊天(1 个应用程序),并且当他们互相交谈时,他们想将他们的对话发布到公众(第 3 个应用程序拿起视频对话并转码)当时所有 3 个应用程序都需要相互通信,并共享用户/登录信息

标签: spring spring-security jms rabbitmq


【解决方案1】:

由于您希望使用多种语言来实现,RabbitMQ 听起来是一个更好的选择,因为它是一个 AMQP 实现,声称支持更多样化的语言集。我的意思是,大多数 JMS 实现都有相当丰富的语言支持(除了 Java),但似乎 AMQP 在这方面更有动力。

您也可以考虑ZeroMQ。根据您的描述,您似乎在后端(排队、持久性等)上可能不需要那么多。您可能还会发现,在传输协议中实现消息传递更容易,对于可能被困在防火墙后面、需要使用代理服务器等的分布式用户社区,这些协议更易于管理。

//尼古拉斯

【讨论】:

  • 还有一个问题,如果我们坚持Java堆栈,有哪些选择,jms是更好的解决方案吗?还有什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2010-12-22
相关资源
最近更新 更多