ActiveMQ示例显示客户端 - 服务器2路通信?

loc*_*cka 2 java activemq-classic

我想编写一个与Java服务器通信的Java SE客户端应用程序.想象一下类似于在线游戏的东西,其中存在大量流量并且可能多个客户端连接到同一服务器.

  1. 客户端和服务器之间的持续通信
  2. 通信将在带外失调,因此双方都不知道也不期望接下来或何时会收到什么消息.
  3. 服务器不知道客户端IP并且无法将通信建立回客户端(因为可能存在NAT).因此,必须从客户端启动任何开放端口.
  4. 实际有效负载将是序列化字节.我打算使用Protocol Buffers将消息编组成线路上的字节,这样传输包络也必须是轻量级的.
  5. 客户端是Java SE,但有一天它可能是C++.

ActiveMQ似乎是一个合适的选择,但由于我从未像现在这样使用它,我不确定它是否具有性能或特性.

有人可以建议它是否合适,我可能会遇到什么陷阱,并且可能会建议一个演示类似于我正在考虑的内容的教程?

Hir*_*ino 5

是的,我强烈推荐ActiveMQ,它快速,易于安装,它可以很好地处理您的所有要求.它的紧密编码选项将真正压缩消息信封大小,它甚至支持'useCompression'选项来为您压缩消息体.它还有一个不错的C++客户端