Java 多个套接字用于不同的消息,而不是在一个套接字上解析不同的消息
我正在开发一个接收不同类型消息的应用程序(大约4种类型的消息)。我想知道什么会更好:Java 多个套接字用于不同的消息,而不是在一个套接字上解析不同的消息,java,sockets,parsing,port,Java,Sockets,Parsing,Port,我正在开发一个接收不同类型消息的应用程序(大约4种类型的消息)。我想知道什么会更好: 为不同的消息类型提供不同的端口,发送应用程序在适当的端口上发送消息 在一个端口上发送消息,通过id字段或其他方式进行区分,并对其进行解析 谁能告诉我哪种方法在性能方面更有利?我个人认为拥有不同的端口会更好。有人能告诉我这是否是正确的方法吗?从一个套接字开始,因为这样更容易维护(为应用程序排序多个网络端口可能会很痛苦,尤其是在涉及防火墙的情况下) 假设您在编写代码时对套接字处理进行了合理的封装,如果您真的需要多个
谁能告诉我哪种方法在性能方面更有利?我个人认为拥有不同的端口会更好。有人能告诉我这是否是正确的方法吗?从一个套接字开始,因为这样更容易维护(为应用程序排序多个网络端口可能会很痛苦,尤其是在涉及防火墙的情况下)
假设您在编写代码时对套接字处理进行了合理的封装,如果您真的需要多个套接字来提高性能(并且您已经通过实际测试证明了这一点),那么以后进行更改应该是相当容易的。从一个套接字开始,因为这样更容易维护(为应用程序整理多个网络端口可能是一件痛苦的事情,尤其是在涉及防火墙的情况下)
假设您在编写代码时对套接字处理进行了合理的封装,如果您真的需要多个套接字来提高性能(您已经通过实际测试证明了这一点),那么以后进行更改应该相当容易。TBH除非您有大量的消息,否则这一点都不重要。选择最容易编码/维护的方法。我将有大量的消息。在这种情况下,哪一个更好?定义“巨大”(以字节为单位)可以这样想:如果解析这些消息所需的实际处理能力低于一个内核所能处理的能力,那么这无关紧要。如果您有一台专用于处理消息的机器,那么您将受益于在不同的线程(和不同的端口)上运行它们。否则,上下文切换可能会损害至少与在不同端口上运行它们所带来的性能好处一样多的性能。如果您非常关心性能,您应该看看
netty
。我们使用netty每秒处理每个商品服务器上成千上万的HTTP请求。这会让您产生任何想法ng在code.TBH中执行相对简单的操作,除非您有大量的消息,否则这一点都不重要。选择最容易编码/维护的方法。我将有大量的消息。在这种情况下,哪一个更好?定义“巨大”(以字节为单位)可以这样想:如果解析这些消息所需的实际处理能力低于一个内核所能处理的能力,那么这无关紧要。如果您有一台专用于处理消息的机器,那么您将受益于在不同的线程(和不同的端口)上运行它们。否则,上下文切换可能会损害至少与在不同端口上运行它们所带来的性能好处一样多的性能。如果您非常关心性能,您应该看看netty
。我们使用netty每秒处理每个商品服务器上成千上万的HTTP请求。这会让您产生任何想法ng要做的代码比较简单。