背景
在我的 Java 应用程序中,我在 ConcurrentHashMap 中有相当多的数据。
现在,当客户端通过 TCP 端口连接到我的应用程序时,我需要将此数据以 XML 格式提供给消费者客户端。
简而言之 - 我有一个客户端连接到的 TCP 服务器。客户端连接后,我必须读取 Map 中的所有数据,并在 TCP 端口上以 XML 格式(自定义)将其吐出。Map 中的数据会使用工作线程等从其他地方自动更新,因此我必须不断地在这个 tcp 端口上向客户端发送新数据。
我想实现一个内存和 cpu 高效的解决方案 - 主要是我不希望在堆中生成太多不可变对象。.
注意:将来我可能必须支持多种输出格式(如逗号分隔或 Json 或 HL7 等)。为了简单起见,假设客户端可以为特定格式连接不同的 TCP 端口。
问题
话虽如此 - 我一直在为我的 TCP 服务器实现和从 ConcurrentHashMap 到 XML 的数据转换过程寻找最佳解决方案。
对于 TCP Server,人们谈论
我的客户将是一些第三方,所以我认为 kryonet 已经出局了,因为客户不会做 Kryonet 所需的“注册”业务。那么在 MINA 和 NETTY 中,哪一个是可扩展且更易于理解的呢?还有什么建议吗?
对于从 ConcurrentHashMap 到 XML 的数据转换,我正在考虑使用XSTREAM 还有 其他建议吗?
谢谢