Прокси аркылуу толук эмес сүрөттөр: Netty жазуусунун аякташын текшериңиз
Прокси аркылуу сүрөттөр толук эмес келгенде, баштапкы сервер асинхрондук жооп жазылып бүтө электе Netty каналын жаап жатканын текшериңиз.
Сүрөт ылдам түз байланышта иштейт, бирок багыраак forward прокси аркылуу толук эмес келет. Мүмкүн болгон себептердин бири — баштапкы сервер жообу жазылып жатканда байланышты жабат.
Netty I/O асинхрондук. writeAndFlush-тан кайтуу бул операциянын аяктаганын билдирбейт. Ошондуктан бул тартип кезекте байттары бар жооп үчүн кооптуу:
ctx.writeAndFlush(response);
ctx.close();
HTTP алмашуу акыркы жооп билдирүүсүнөн кийин атайын жабылып жатса, жабууну ошол жазуунун future'уна тиркеңиз:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
Фрагмент жооп мурун эле туура курулуп, фреймделген деп эсептейт. Агынды дене үчүн анын акыркы билдирүүсүнүн аякташын колдонуңуз, аталыштардын жазылышын эмес. Туруктуу HTTP байланышы үчүн жооп бүттү деп эле жабууну кошпоңуз.
future'дун ийгиликсиздигин колдонмонун кадимки ката иштетүүсүнүн бөлүгү катары текшериңиз. Аяктоо ийгиликсиздикти жана жокко чыгарууну камтыйт, ошондуктан аяктоо өзү браузерден жеткирүү дүмүрчөгү эмес.
Пайдалуу салыштыруу — ар бир жолдогу жооптун толук узундугу жана жазуу натыйжасы. Прокси убакытты жетишерлик өзгөртүп, бар болгон жашоо циклинин катасын ачыкка чыгара алат; анын болушу анын компрессору же кэши байттарды таштаганын далилдебейт.