Top Description Classes
module io.netty.handler

Package io.netty.handler.traffic


Implementation of a Traffic Shaping Handler and Dynamic Statistics.

The main goal of this package is to allow you to shape the traffic (bandwidth limitation), but also to get statistics on how many bytes are read or written. Both functions can be active or inactive (traffic or statistics).

Two classes implement this behavior:

Both inbound and outbound traffic can be shaped independently. This is done by either passing in the desired limiting values to the constructors of both the Channel and Global traffic shaping handlers, or by calling the configure method on the io.netty.handler.traffic.AbstractTrafficShapingHandler. A value of 0 for either parameter indicates that there should be no limitation. This allows you to monitor the incoming and outgoing traffic without shaping.

To activate or deactivate the statistics, you can adjust the delay to a low (suggested not less than 200ms for efficiency reasons) or a high value (let say 24H in millisecond is huge enough to not get the problem) or even using 0 which means no computation will be done.

If you want to do anything with these statistics, just override the doAccounting method.
This interval can be changed either from the method configure in io.netty.handler.traffic.AbstractTrafficShapingHandler or directly using the method configure of io.netty.handler.traffic.TrafficCounter.

Note that a new io.netty.handler.traffic.ChannelTrafficShapingHandler must be created for each new channel, but only one io.netty.handler.traffic.GlobalTrafficShapingHandler must be created for all channels.

Note also that you can create different GlobalTrafficShapingHandler if you want to separate classes of channels (for instance either from business point of view or from bind address point of view).

Class Summary

Modifier and TypeClass and Description
public abstract class
AbstractTrafficShapingHandler

AbstractTrafficShapingHandler allows to limit the global bandwidth (see GlobalTrafficShapingHandler) or per session bandwidth (see ChannelTrafficShapingHandler), as traffic shaping.

public class
ChannelTrafficShapingHandler

This implementation of the AbstractTrafficShapingHandler is for channel traffic shaping, that is to say a per channel limitation of the bandwidth.

public class
public class
GlobalChannelTrafficShapingHandler

This implementation of the AbstractTrafficShapingHandler is for global and per channel traffic shaping, that is to say a global limitation of the bandwidth, whatever the number of opened channels and a per channel limitation of the bandwidth.

public class
GlobalTrafficShapingHandler

This implementation of the AbstractTrafficShapingHandler is for global traffic shaping, that is to say a global limitation of the bandwidth, whatever the number of opened channels.

public class
TrafficCounter

Counts the number of read and written bytes for rate-limiting traffic.