Netty ObjectEncoder/ObjectDecoder-避免在消息中发送完整的类名

Netty ObjectEncoder/ObjectDecoder-避免在消息中发送完整的类名,netty,classloader,Netty,Classloader,一般说明: netty示例链接: 拥有: 添加时: p.addLast("logger", new LoggingHandler(LogLevel.INFO)); 发送消息时,我们将看到类似的内容(并非完全来自演示): >+-------------------------------------------------+ >| 01 2 3 4 5 6 7 8 9 a b c d e f| > +--------+----------------------------

一般说明:

netty示例链接:

拥有:

添加时:

p.addLast("logger", new LoggingHandler(LogLevel.INFO));
发送消息时,我们将看到类似的内容(并非完全来自演示):

>+-------------------------------------------------+
>| 01 2 3 4 5 6 7 8 9 a b c d e f|
> +--------+-------------------------------------------------+----------------+
>|00000000 | 00 00 b4 05 73 72 01 00 28 69 6f 2e 74 6c 66 |…sr.(|###|
>00000010 2E6D6F6B65796E6574792E6D7367|
>| 000000 20 | 2e 55 64 70 43 6f 6e 48 61 73 68 4d 65 73 61 | UdpConHashMessa|
>|000000 30 | 67 65 78 70 01 74 00 80 4c 22 3c 55 53 59 79 68 | gexp.t..L“| 000000 40 | 5b 5E 6e 53 4c 78 2a 46 3b 3c 25 51 74 25 |至.nSLx*F;| 000000 50 | 58 37 2a 36 31 4f 27 79 40 59 62 3c 67 | 61eO”y@9YbD| 00000060 | 7a 6c 5b 71 41 6c 5b 66 73 6d 46 7b 75 23 4e 55 | zl[qAl[fsmF{u#NU|
>|000000 70 | 76 69 3d 49 4d 7b 2f 52 30 72 2c 47 3e 59 26 74 | vi=IM{/R0r,G>Y&t|
>| 000000 80 | 7d 2f 40 57 24 50 59 50 30 27 3f 38 3d 69 7a 7d |}/@W$PYP0'?8=iz}|
>| 000000 90 | 6d 3e 2a 22 2d 36 2d 6e 32 76 4c 2f 74 31 48 55 | m>*“-6-n2vL/t1HU|
>| 000000 A0 | 65 6b 64 5a 40 6f 2d 30 69 37 32 5f 3c 54 39 74|ekdZ@o-0i72 | 000000 B0 | 51 40 7d 7a 75 41 69 | Q | zzuAi|
> +--------+-------------------------------------------------+----------------+
请注意,它发送完整的类名,这在包中占用了一些空间

我理解的是:

  • 据我所知,它发送完整的类名和以后的数据
我们希望实现的目标:

  • 希望发送一些类ID而不是完整的类名以优化数据包大小。(也适用于字段类)
尝试的内容:

  • 尝试使用不同的类解析器,但似乎我不确定它们的用途
问题:

  • 如何避免发送完整的类名,但发送一些ID(或serialVersionUID)
  • 或者如何优化数据包大小(如果您知道其他方法)
  • 类解析器的用途是什么
重要: -请注意,此消息的每个序列化字段也将发送完整的类名,因此需要一种处理字段的方法。

p.addLast("logger", new LoggingHandler(LogLevel.INFO));
>          +-------------------------------------------------+
>          |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
> +--------+-------------------------------------------------+----------------+
> |00000000| 00 00 00 b4 05 73 72 01 00 28 69 6f 2e 74 6c 66 |.....sr..(##.###|
> |00000010| 2e 6d 6f 6e 6b 65 79 6e 65 74 74 79 2e 6d 73 67 |.###########.msg|
> |00000020| 2e 55 64 70 43 6f 6e 48 61 73 68 4d 65 73 73 61 |.UdpConHashMessa|
> |00000030| 67 65 78 70 01 74 00 80 4c 22 3c 55 53 59 79 68 |gexp.t..L"<USYyh|
> |00000040| 5b 54 6f 2e 6e 53 4c 78 2a 46 3b 3c 25 51 74 25 |[To.nSLx*F;<%Qt%|
> |00000050| 58 37 2a 36 31 65 4f 27 79 40 39 59 62 44 3c 67 |X7*61eO'y@9YbD<g|
> |00000060| 7a 6c 5b 71 41 6c 5b 66 73 6d 46 7b 75 23 4e 55 |zl[qAl[fsmF{u#NU|
> |00000070| 76 69 3d 49 4d 7b 2f 52 30 72 2c 47 3e 59 26 74 |vi=IM{/R0r,G>Y&t|
> |00000080| 7d 2f 40 57 24 50 59 50 30 27 3f 38 3d 69 7a 7d |}/@W$PYP0'?8=iz}|
> |00000090| 6d 3e 2a 22 2d 36 2d 6e 32 76 4c 2f 74 31 48 55 |m>*"-6-n2vL/t1HU|
> |000000a0| 65 6b 64 5a 40 6f 2d 30 69 37 32 5f 3c 54 39 74 |ekdZ@o-0i72_<T9t|
> |000000b0| 51 40 7d 7a 7a 75 41 69                         |Q@}zzuAi        |
> +--------+-------------------------------------------------+----------------+