Мой стек Tomcat8, с весной и JAX-RS (Джерси) на вершине его. Это предоставляет REST API, который будет использоваться конечным пользователем. В этих конечных точках REST мне нужно подключение сокета к древнему бэкэнду. Это дорого стоит настроить и уничтожить эти соединения сокетов для каждого запроса. Я хочу сохранить соединение в локальной переменной потока.Tomcat8/Spring/JAX-RS - Безопасно ли иметь локальные переменные потока в потоках http-bio-8080-exec-XYZ?
Чтобы это произошло, нам нужна гарантия того, что потоки http-bio-8080-exec- [identifier] никогда не будут убиты. Если это так, мы заканчиваем соединением со свисающим сокетом, которое никогда не будет закрыто. В конце концов, мы выйдем из доступных сокетов (утечка памяти).
Я проходил несколько документов, но не нашел ничего полезного. Итак, мой вопрос: будет ли поток пул за потоками только тех, кто будет расти, или он также сократится?
Другим вариантом является введение пула добрых объектов, который содержит соединения сокетов, но я думал, что локальный подход потока будет лучше, так как каждый запрос REST нуждается в этом соединении сокетов, поэтому размер пула будет равен то же самое, что и количество рабочих HTTP. Это хорошая причина использовать локаторы потоков вместо пула объектов, в данном случае?