【发布时间】:2015-04-03 02:34:56
【问题描述】:
我一直在尝试学习和玩一些云计算客户端/服务器交互。我希望获得有关符合此标准的技术堆栈的建议:
- 客户端是使用 websocket、长轮询和服务器发送事件进行异步通信的 Web 浏览器。
- 服务器是可扩展的,并且在需要时应该支持多个实例(对于我玩/学习的情况,我显然不会遇到可扩展性问题,但我想正确地规划它并将使用多个节点进行测试)
- 服务器状态应该使用一些带有 ORM 的数据库技术来持久化
- 服务器状态应该可以被缓存
- 服务器应该能够支持连接到实例 A 的 Alice 执行需要通知连接到实例 B 的 Bob 的情况
- 无开发成本(假设我使用自己的硬件)
我以为我已经弄清楚了。我在想:
JavaEE/Jetty + Maven 用于服务器的东西和部署
Hibernate 用于 ORM 和数据库不可知论
Redis 用于二级缓存和多实例支持
我的问题是使用各种浏览器协议进行客户端/服务器通信,这些协议足够不同且非常重要,可以无缝支持。我环顾四周,发现了 Atmosphere 框架:
Atmosphere 用于使用 websocket、长轮询和服务器发送事件的客户端/服务器通信。它显然也支持 Redis,但是...
这一切看起来都很好,直到经过一些研究后,我意识到 Atmosphere 不支持基于节点的广播(标准 #5)。 Atmosphere 的 Redis 支持很浅(仅本地主机开箱即用),我需要使用 Redis 维护某种节点/广播映射以满足标准 #5。 AtmospherePro 显然在这一切方面都做得很好,但这有我无法证明的代价(标准 #6)。
谁能根据我的标准推荐合适的技术堆栈?也许是云就绪的 Atmosphere 的替代品?
【问题讨论】: