From a43e0a4d8b5cea6124acb0a3dac14e259a154a50 Mon Sep 17 00:00:00 2001 From: Sergey Nastich Date: Thu, 14 Jun 2018 01:36:52 -0400 Subject: Add `Connection: close` header to all responses in order to mitigate connection pool issues with envoy (#175) --- src/main/scala/xyz/driver/core/rest/DriverRoute.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/main/scala/xyz') diff --git a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala index fe3790f..55f39ba 100644 --- a/src/main/scala/xyz/driver/core/rest/DriverRoute.scala +++ b/src/main/scala/xyz/driver/core/rest/DriverRoute.scala @@ -32,7 +32,11 @@ trait DriverRoute { val tracingHeader = RawHeader(ContextHeaders.TrackingIdHeader, trackingId) MDC.put("trackingId", trackingId) - respondWithHeader(tracingHeader) + // This header will eliminate the risk of LB trying to reuse a connection + // that already timed out on the server side by completely rejecting keep-alive + val rejectKeepAlive = Connection("close") + + respondWithHeaders(tracingHeader, rejectKeepAlive) } } @@ -103,4 +107,5 @@ trait DriverRoute { protected def errorResponse[T <: Exception](statusCode: StatusCode, entity: ResponseEntity, exception: T): Route = { complete(HttpResponse(statusCode, entity = entity)) } + } -- cgit v1.2.3