Буферизация объектов Java, чтобы избежать сетевого голодания

Учитывая простой сценарий сетевого взаимодействия, в котором клиент "извлекает" данные с сервера по одному объекту за раз, что будет лучшим подходом для минимизации нехватки буфера?

Типичным вариантом использования может быть соединение одного производителя / потребителя, когда клиентское приложение отправляет запрос на сервер базы данных через Java SDK и получает results iterator (курсор) объекты в качестве возвращаемого значения запроса.

В идеальных условиях сети, последовательно вызывая next() Метод итератора достаточен для своевременного получения всех результатов запроса. Однако, если соединение имеет различное время отклика (например, из-за перегрузки на сервере или в сети), вызовы next() Метод будет возвращаться с перерывами или даже блокировать в течение более длительных периодов времени.

Использование очереди (например, JavaBlockingQueue) где много объектов написано перед чтением результатов (т. е. перед вызовом next() метод), может сгладить это изменение задержки. Есть ли более подходящий способ?

0 ответов

Другие вопросы по тегам