1

我的 java 应用程序必须将消息(多线程)发送到套接字服务器。该应用程序每秒可以发送大约 100-200 条消息。

我想知道哪种方法更好?

  1. 打开一个客户端套接字并通过这个套接字从所有线程发送消息。 缺点:必须处理连接失败时的重连逻辑,重连过程中可能会丢失很多消息。线程安全,阻塞?
  2. 为每个线程创建一个新的客户端套接字连接,并在发送后关闭它。 缺点:即使我关闭了套接字,端口也会等到 TIME_WAIT 周期。

哪个是更好的实用方法?

4

2 回答 2

3

我建议 3.:为每个线程打开一个套接字,并重用线程(例如通过线程池)。然后处理线程内的重新连接,或者只是正确处理它并创建新的。这样可以避免阻塞和同步问题

于 2011-11-10T10:41:54.417 回答
1

每秒 100-200 条消息并不多。我不会每次都重新连接,因为这很昂贵。如果你重新使用你的连接,它会快得多。

如果您担心丢失消息,您可以发送一批消息或一次发送一条消息,然后等待服务器确认已收到消息。您仍然可以通过这种方式每秒发送数千条消息。

于 2011-11-10T11:19:33.210 回答