我的应用程序需要与大量客户端(安装在用户计算机上的java代理)进行双向连续通信,此外还包括一个spring mvc webapp,它提供了一个标准的jsp UI来管理这些代理。 我只看了java akka的基础知识(没有时间学习这个项目的scala)。但是处理大量客户代理似乎是一个不错的选择。我看过akka spring集成模块和akka-spring-java示例,并且在spring方面使用akka看起来非常简单。
我认为在客户端代理端使用akka远程处理可能也是一个好主意,可能嵌入到另一个应用程序中的代理基本上运行一个线程需要在用户的jvm中监视各种进程并与服务器上的服务进行通信。使用位置透明性将在概念上简化架构,并且可能更有效。
本文建议这可能不是正确的方法
Peer-to-Peer vs. Client-Server
使用远程处理的替代方法是使用似乎与akka spring集成模块相关联的camel websockets。
考虑到它的技术堆栈,我的应用程序环境中最好的方向是什么?
答案 0 :(得分:0)
您可能不希望将远程处理用于服务器客户端情况。 Remoting为双方提供相同的权利和特权。它专为集群和点对点而设计。
看看Akka I/O。它为您提供双方的异步演员,但更适合服务器 - 客户端用例。您不必担心线程和进程。
还要记住,即使将Akka与Java一起使用,也需要将Scala库作为依赖项。