Package com.linkedin.venice.listener
Class ServerLoadControllerHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpRequest>
com.linkedin.venice.listener.ServerLoadControllerHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
@Sharable
public class ServerLoadControllerHandler
extends io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpRequest>
This handler is used to control the load on the server by measuring the read latency.
If there are many requests, which are suffering from the high latency, the server will
start rejecting the requests and return the service overloaded response, so that the
clients can back off upon overloaded signals.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final io.netty.handler.codec.http.HttpResponseStatusstatic final String -
Constructor Summary
ConstructorsConstructorDescriptionServerLoadControllerHandler(VeniceServerConfig serverConfig, ServerLoadStats loadStats) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidchannelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest msg) voidrecordLatency(RequestType requestType, double latency, int responseStatusCode) Methods inherited from class io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelReadMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
-
Field Details
-
OVERLOADED_RESPONSE_STATUS
public static final io.netty.handler.codec.http.HttpResponseStatus OVERLOADED_RESPONSE_STATUS -
SERVICE_OVERLOADED_MESSAGE
- See Also:
-
-
Constructor Details
-
ServerLoadControllerHandler
-
-
Method Details
-
channelRead0
protected void channelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest msg) throws Exception - Specified by:
channelRead0in classio.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpRequest>- Throws:
Exception
-
recordLatency
-