2012-04-18 20 views
0

添付ファイルを使ってNettyの約20のチャンネルの間でオブジェクトを共有しようとしています。 EX ..Netty - チャンネル間の添付ファイルを共有する

SharedStatsObj sso ... 
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port)); 
ChannelHandlerContext c = future.getChannel().getPipeline().getContext("handler") 
c.setAttachment(sso); 

このオブジェクトは、我々が接続されており、また、特定のアクションをプリフォームするために、個々のチャネルを通知するために使用されますどのくらいの期間、送信されたコマンドなどの統計情報を維持します。誰にもこれに関する経験はありますか?データの更新/データへのアクセス時に同期ブロックを使用する以外に、スレッドに関する問題はありますか?どんなアドバイスも大歓迎です!

答えて

1

チャネル間でObjectを共有したい場合は、ChannelHandlerに直接注入するか、静的なChannelLocalインスタンスを使用します。

オブジェクトがスレッドセーフであることを確認してください。

+0

特にチャンネルに直接添付しない理由は何ですか?私はChannelLocalのインスタンスでピークを迎えましたが、添付ファイルはすばやく簡単です。 –

関連する問題