gpt4 book ai didi

java - Java 中的高效 TCP 服务器和数据转换

转载 作者:行者123 更新时间:2023-12-02 08:14:06 24 4
gpt4 key购买 nike

背景

在我的 java 应用程序中,ConcurrentHashMap 中有相当大量的数据。

现在,当客户端通过 TCP 端口连接到我的应用程序时,我需要以 XML 格式将此数据提供给消费者客户端。

简而言之 - 我有一个客户端连接到的 TCP 服务器。一旦客户端连接,我就必须读取 Map 中的所有数据,并在 TCP 端口上以 XML 格式(自定义)吐出。 map 中的数据不断从其他地方使用工作线程等自动更新,所以我必须不断地在这个 tcp 端口上向客户端发送新数据。

我想实现一个内存和CPU效率高的解决方案 - 主要是我不希望在堆中生成太多不可变对象(immutable对象)。 .

注意:将来我可能必须支持多种输出格式(例如逗号分隔或 Json 或 HL7 等)。为了简单起见,假设客户端可以连接特定格式的不同 TCP 端口。

问题

话虽如此,我一直在寻找适合我的 TCP 服务器实现以及从 ConcurrentHashMap 到 XML 的数据转换过程的最佳解决方案。

对于 TCP Server,人们谈论

我的客户将是第三方,所以我认为 kryonet 已经出局了,因为客户不会做 Kryonet 所需的“注册”业务。那么 MINA 和 NETTY 中,哪一个具有可扩展性并且更易于理解呢?还有其他建议吗?

对于从 ConcurrentHashMap 到 XML 的数据转换,我正在考虑使用 XSTREAM还有其他建议吗?

谢谢

最佳答案

如果您有数百或数千个连接,您应该开始考虑可扩展性。但是,如果您的连接数量较少,那么使用普通套接字可能就足够了。

如果只有部分数据发生变化,则最好只发送已更改的数据,或者至少仅重新生成已更改的 XML。

关于java - Java 中的高效 TCP 服务器和数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6765247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com