日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 带宽控制_如何使用Java netty正确限制带宽使用?

發布時間:2025/3/12 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 带宽控制_如何使用Java netty正确限制带宽使用? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于我使用netty nio lib在

Java中開發的下載客戶端,我還實現了帶寬限制功能.從技術上講,我是通過GlobalTrafficShapingHandler對象完成的.基于這個類’JavaDoc我初始化nio客戶端管道如下:

...

trafficHandler = new GlobalTrafficShapingHandler(

new HashedWheelTimer(),1000);

execHandler = new ExecutionHandler(

new OrderedMemoryAwareThreadPoolExecutor(20,0));

...

public ChannelPipeline getPipeline() throws Exception

{

// create default pipeline

ChannelPipeline pipeline = pipeline();

// traffic shaping handler

pipeline.addLast("global-traffic-shaping",trafficHandler);

// SSL support

if(useSSL)

{

SSLEngine sslEngine = createSSLEngine();

pipeline.addLast("ssl",new SslHandler(sslEngine));

}

// memory executor

pipeline.addLast("memory-executor",execHandler);

// business logic

pipeline.addLast("data-processing",new NettyNioClientHandler(

nettyNioClient,localer,logger,ncMgr,username,useSSL));

return pipeline;

}

然后在運行時我設置最大值.通過下載速度

public void setDlSpeedLimit(long limit)

{

if(limit < 0)

return;

trafficHandler.configure(0,limit * 1000L);

}

好吧,所以基本上netty nio功能運行得很好而且速度很快.當我設置最大值.在應用程序中下載速度,我還可以看到帶寬使用確實上限為最大值.水平.我監視帶寬使用情況

trafficHandler.getTrafficCounter().getLastReadThroughput();

然而,不幸的是最大.速度我監控不是我之前設置的,甚至沒有關閉.例如,我最初(沒有限制)的下載速度約為2000 kb / s,然后我將限制設置為300 kb / s,如上所述,但實際下載速度則從700-900 kb /秒.

所以我在這種情況下的問題是:我可以看到流量整形器正在做某事,但不是我想要的.我在這里錯過了什么,例如管道初始化中的任何步驟?

在此先感謝您的幫助!

總結

以上是生活随笔為你收集整理的java 带宽控制_如何使用Java netty正确限制带宽使用?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。