У меня есть система, которая должна обрабатывать более 200 транзакций в минуту на сокет TCP / IP.В настоящее время я создаю новый сокет для каждой поступающей транзакции, и после получения ответа я закрываю сокет с помощью API .close () java.net.Socket.У меня есть 2 проблемы:
- У меня ограниченное количество живых соединений с сервером в количестве 20 штук.
- Когда я выполняю .close (), он оставляет меня в сокете в состоянии TIME_WAIT, котороезаставляет меня занять этот сокет.
Какой подход следует использовать?Среди подходов, которые рассматриваются, следующие:
Используйте сокет, который не блокируется с помощью пакета java.nio, в результате очень важно получить ответ отсокет и, как я читал, conrol немного теряется.
Создание потока каждого из запросов, и он завершается по завершении (у меня все еще будет проблема TIME_WAIT, о которой я упоминал).
Создание пула разъемов Socket, которые всегда остаются открытыми, проверка нагрузки каждого из них и принятие решения о том, какие из них использовать.