Мои два цента в том, что вы не используете расширения, если у них есть списки элементов или что-либо, что может потенциально привести к значительным сообщениям.Вы должны использовать один из декодеров / кодировщиков с кадрированием длины с сообщениями protobuf, чтобы они были правильно разделены по размеру.Если вы хотите, чтобы сообщения помещались, скажем, в 64 Кбайт с вашим 2-байтовым заголовком, неэффективно продолжать вызывать toByteArray в вашем сообщении, чтобы увидеть, будет ли оно вписываться в кадр.
Альтернативой является использованиеПеречислите главное сообщение, а не расширение, используйте байтовый массив, который является сериализованным сообщением protobuf, которое было бы в расширении.Таким образом, вы можете сохранять постфиксные данные в сообщении при его создании, а если вы превысите ограничение размера, вы можете аккуратно разделить его пополам, вместо того, чтобы Netty выдавала исключение, что оно слишком велико для фрейма.