0
我使用netty構建了一個http服務器。當它在我的mac中運行時,一切都很好,但是當我在docker鏡像中運行它時,http響應總是在大於460k時被截斷。http響應在docker中被截斷了
什麼問題會是?請幫忙。
我使用netty構建了一個http服務器。當它在我的mac中運行時,一切都很好,但是當我在docker鏡像中運行它時,http響應總是在大於460k時被截斷。http響應在docker中被截斷了
什麼問題會是?請幫忙。
你使用聚合器來聚合HTTP響應嗎?看看HttpObjectDecoder的源代碼。無論http消息本身是否是傳輸編碼,它都會將更大的http響應塊化。
默認的maxChunk大小是8k。甚至可讀的字節就足夠了,它會把它分塊。請參閱下面的代碼:
`case READ_FIXED_LENGTH_CONTENT:{readLimit = actualReadableBytes();
// Check if the buffer is readable first as we use the readable byte count
// to create the HttpChunk. This is needed as otherwise we may end up with
// create a HttpChunk instance that contains an empty buffer and so is
// handled like it is the last HttpChunk.
//
// See https://github.com/netty/netty/issues/433
if (readLimit == 0) {
return;
}
int toRead = Math.min(readLimit, maxChunkSize);
if (toRead > chunkSize) {
toRead = (int) chunkSize;
}
ByteBuf content = readBytes(ctx.alloc(), buffer, toRead);
chunkSize -= toRead;
`
我使用的是網狀5.0.0alpha2。 – spacedragon
顯示Dockerfile和可重複測試可能有所幫助。 –
你使用聚合器來聚合http響應嗎? –