我正在尝试为连接的客户端构建一个通用服务器。
该架构由4个主要组件组成
流程
我正在使用Java Netty作为网关。 App服务器也是Java。
我很想说设计就像Mongrel2,但我并不完全确定。我想说这更像是城市飞艇的Helium边缘服务器设计(http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/)
我的问题是: - 使用线程从入站队列中读取消息,然后将它们转发给客户端是一个好主意吗?有没有更好的方法来处理这个?如何确保消息在不使用其他线程的情况下转到相应的客户端套接字?
答案 0 :(得分:3)
您可以使用in-vm消息传递。这是netty game server(谨慎!我写的!),它已经使用了这种演员模型。它使用JetLang进行事件调度和会话,以记住与客户端的每个连接。虽然您的用例可能无法直接满足,但如果您查看jetserver的源代码并剥离自己的逻辑,您肯定会得到一些想法。
如果您注意到,即使无状态UDP也与会话绑定。