找不到合适的云客户端/服务器技术堆栈



我一直在尝试学习和玩一些云计算客户端/服务器交互。我希望能得到关于符合这一标准的技术堆栈的建议:

  1. 客户端是使用websocket、长轮询和服务器发送事件进行异步通信的web浏览器
  2. 服务器是可扩展的,如果需要,应该支持多个实例(在我玩/学习的情况下,我显然不会遇到可扩展性问题,但我想正确规划,并将使用多个节点进行测试)
  3. 服务器状态应该使用一些带有ORM的数据库技术来持久化
  4. 服务器状态应该能够缓存
  5. 服务器应该能够支持这样一种场景,即连接到实例a的Alice做了一些需要通知连接到实例B的Bob的事情
  6. 无开发成本(假设我使用自己的硬件)

我以为我已经想通了。我在想:

JavaEE/JJetty+Maven用于服务器和部署

ORM和数据库不可知的Hibernate

Redis用于二级缓存和多实例支持

我的问题是使用各种浏览器协议的客户端/服务器通信,这些协议的不同程度足以无缝支持。我环顾四周,发现了Atmosphere框架:

Atmosphere用于使用websocket、长轮询和服务器发送事件进行客户端/服务器通信。而且它显然支持Redis,但是。。。

这一切看起来都很好,直到经过一些研究,我意识到Atmosphere不支持基于节点的广播(标准#5)。Atmosphere的Redis支持很浅(localhost只是现成的),我需要使用Redis来维护某种节点/广播器映射,以满足标准#5。AtmospherePro显然做得很好,但这有一个我无法证明的成本(标准#6)。

有人能为我的标准提出一个合适的技术堆栈吗?也许是大气层的一种替代方案,可以为云层做好准备?

Play框架对Scala和Java都有WebSocket支持,我鼓励您尝试其中一个Typesafe Activator模板:https://typesafe.com/activator/templates

最新更新