Что произойдет, если приемник TCP работает очень медленно в Vertx - PullRequest
0 голосов
/ 09 апреля 2020

Я применяю Vert.x NetServer для реализации моего tcp-приемника. Я думаю о проблеме с производительностью, предположим, что мой tcp-приемник работает очень медленно, и клиент очень быстро отправляет сообщение, какие последствия произойдут в этой ситуации? При реализации TCP-получателя с традиционным Java socket или socketChannel, когда сторона получателя потребляет сообщение слишком медленно, оно обратит давление на сторону отправителя, а затем сторона отправителя замедлит отправку. Однако в Vert.x или Netty я вызываю NetServer в Verticle для обработки сообщения, это асинхронная связь, не знаю, как она работает. Мой вопрос:

(1) Существует ли механизм обратного давления в Vert.x или Netty?

(2) Есть ли буфер для передачи сообщений по TCP? Я знаю, что там должен быть буфер уровня TCP, есть ли буфер приема поверх уровня TCP? Если есть, насколько большой по умолчанию? или Как это изменить?

(3) Как в этой ситуации, если сторона получателя слишком медленная, а сторона отправителя очень быстрая, что происходит в Vert.x или Netty?

Будут оценены любые идеи.

...