在基于套接字的网络上设计分布式系统时,按消息建立连接是一种好方法吗?

Is it good approach to make connection per message while designing distributed system over socket based network?

我正在通过使用 java 中的套接字创建网络来设计分布式系统。它有不同的线程同时与其他服务器通信。在设计涉及同时连接的分布式系统或任何网络应用程序时,创建一次连接然后使用 io-streams 进行通信是否好,或者应该建立并关闭每条消息的连接?

我认为每次客户端想要发送消息时都建立连接不是一个好主意,因为您必须等到服务器接受您的连接。

     //Server side code.
    ServerSocket listener = new ServerSocket(9090);
    Socket socket = listener.accept();
    //client code
    Socket s = new Socket(serverAddress, 9090);

您可以创建单个连接并在其余代码中使用 inputStreamReader 来监听双方的输入和输出,这种方法将使您的应用程序比每次都创建一个连接更快。

//client code
 BufferedReader input =new BufferedReader(new InputStreamReader(s.getInputStream()));

//serverCode
PrintWriter out =new PrintWriter(socket.getOutputStream(), true);