可以将多少数据添加到Netty频道

时间:2015-08-06 10:08:58

标签: java client-server netty

我正在使用Netty作为客户端服务器应用程序。我想向每个频道添加数据,如:

channel.attr(AttributeKey.valueOf("deviceId")).set(deviceId);

我有一般性问题:

  1. 我可以将多少属性附加到频道

  2. 属性的最大尺寸是多少?

  3. 属性可以是哪些类型(对象,变量,数组......)?

1 个答案:

答案 0 :(得分:3)

  1. DefaultAttributeMap存储AtomicReferenceArray中的属性,因此我会说您可以存储Integer.MAX_VALUE个属性的内容,实际上少一些。所以超过20亿。

  2. 我没有试过这个,但我会说你的JVM堆大小允许。

  3. 属性可以是任何类型:

    <T> Attribute<T> attr(AttributeKey<T> key);
    
    final static AttributeKey<Long> CHECKSUMKEY = AttributeKey.valueOf("calcchecksum");
    final static AttributeKey<CustomClass> COMMANDKEY = AttributeKey.valueOf("command");
    final static AttributeKey<Long> FILEHANDLEKEY = AttributeKey.valueOf("filehandle");
    final static AttributeKey<File> PATHKEY = AttributeKey.valueOf("destpath");