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.HttpResponseStatus
static final String
-
Constructor Summary
ConstructorsConstructorDescriptionServerLoadControllerHandler
(VeniceServerConfig serverConfig, ServerLoadStats loadStats) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
channelRead0
(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest msg) void
recordLatency
(RequestType requestType, double latency, int responseStatusCode) Methods inherited from class io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelRead
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:
channelRead0
in classio.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpRequest>
- Throws:
Exception
-
recordLatency
-