netty 4.0.24receiveBufferSize가 적용되지 않습니다. UDP 패킷 잘림
XML을 통해 UDP를 전달합니다. UPD 패킷을 수신 할 때, 패킷은 항상 길이가 2048이고 메시지를 절단합니다. 그래도 수신 버퍼 크기를 더 큰 것으로 설정하려고 시도했지만 (4096, 8192, 65536) 영광을 얻지는 못합니다.
다른 UDP 인제 스트 메커니즘을 사용하여 UDP 보낸 사람을 확인했습니다. java.net.DatagramSocket을 사용하는 독립형 Java 응용 프로그램입니다. XML은 약 45k입니다.
스택을 DatagramSocketImpl.createChannel (281 행)까지 추적 할 수있었습니다. DatagramChannelConfig를 밟으면, 내가 설정 한 (훌륭한) receiveBufferSize가 있지만, 2048의 rcvBufAllocator가 있습니다.
rcvBufAllocator가 receiveBufferSize (SO_RCVBUF)를 대체합니까? 메시지가 여러 버퍼에 들어 있습니까?
의견이나 다른 해결책을 제공해 주시면 대단히 감사하겠습니다.
또한 언급해야 할 점은 net.x를 많이 사용하는 vert.x라는 ESB를 사용하고 있다는 것입니다. 나는 네티에 이르기까지 추적 할 수 있었기 때문에 여기서 도움을 얻을 수 있었으면 좋겠다.
마찬가지로으로 할당을 구성 할 수 있습니다 : 여기
는Bootstrap
사용 그물코 4.x의 고정 된 최대 수신 데이터 그램 크기의 UDP 서비스를 구성하는 방법의 예 보충제. UDP의 경우, 'FixedRecvByteBufAllocator'가 기본값으로 사용되며 기본 버퍼 크기는 2048입니다. – louxiu