我正在将Netty用于客户端服务器应用程序。我想向每个通道添加数据,例如:
channel.attr(AttributeKey.valueOf("deviceId")).set(deviceId);
我有一些一般性问题:
我可以为频道附加多少个属性
一个属性的最大大小是多少?
属性可以是什么类型(对象,变量,数组等)?
最佳答案
DefaultAttributeMap
将属性存储在AtomicReferenceArray
中,所以我想说您可以在Integer.MAX_VALUE
属性周围存储一些内容,实际上要少一些。因此超过20亿。
我还没有尝试过,但是我会尽可能地说您的JVM堆大小。
属性可以是任何类型:
<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");