This is an automated email from the ASF dual-hosted git repository.
songxiaosheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git
The following commit(s) were added to refs/heads/master by this push:
new eb22537e optimize: rest protocol connection default keepalive (#472)
eb22537e is described below
commit eb22537ecedb7623b4c1ccb6042f5a335cd078b3
Author: funkye <[email protected]>
AuthorDate: Sun Aug 18 18:23:27 2024 +0800
optimize: rest protocol connection default keepalive (#472)
* optimize: rest protocol connection default keepalive
* code style
---------
Co-authored-by: xiaosheng <[email protected]>
---
.../dubbo/rpc/protocol/rest/netty/ChunkOutputStream.java | 8 +++-----
.../dubbo/rpc/protocol/rest/netty/NettyHttpResponse.java | 10 +++++-----
.../dubbo/rpc/protocol/rest/netty/RestHttpRequestDecoder.java | 2 --
3 files changed, 8 insertions(+), 12 deletions(-)
diff --git
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/ChunkOutputStream.java
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/ChunkOutputStream.java
index ff6cb681..db07dd7e 100644
---
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/ChunkOutputStream.java
+++
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/ChunkOutputStream.java
@@ -66,12 +66,10 @@ public class ChunkOutputStream extends OutputStream {
@Override
public void write(byte[] b, int off, int len) throws IOException {
- int dataLengthLeftToWrite = len;
- int dataToWriteOffset = off;
- if (buffer.maxWritableBytes() < dataLengthLeftToWrite) {
+ if (buffer.maxWritableBytes() < len) {
throwExceedPayloadLimitException(buffer.readableBytes() + len);
}
- buffer.writeBytes(b, dataToWriteOffset, dataLengthLeftToWrite);
+ buffer.writeBytes(b, off, len);
}
@Override
@@ -79,7 +77,7 @@ public class ChunkOutputStream extends OutputStream {
int readable = buffer.readableBytes();
if (readable == 0) return;
if (!response.isCommitted()) response.prepareChunkStream();
- ctx.writeAndFlush(new DefaultHttpContent(buffer.copy()));
+ ctx.write(new DefaultHttpContent(buffer.copy()));
buffer.clear();
super.flush();
}
diff --git
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/NettyHttpResponse.java
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/NettyHttpResponse.java
index a700cd1e..b36f8bb0 100644
---
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/NettyHttpResponse.java
+++
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/NettyHttpResponse.java
@@ -199,11 +199,11 @@ public class NettyHttpResponse implements HttpResponse {
@SuppressWarnings({"rawtypes", "unchecked"})
public static void transformHeaders(
NettyHttpResponse nettyResponse,
io.netty.handler.codec.http.HttpResponse response) {
- // if (nettyResponse.isKeepAlive()) {
- // response.headers().set(HttpHeaders.Names.CONNECTION,
HttpHeaders.Values.KEEP_ALIVE);
- // } else {
- // response.headers().set(HttpHeaders.Names.CONNECTION,
HttpHeaders.Values.CLOSE);
- // }
+ if (nettyResponse.isKeepAlive()) {
+ response.headers().set(HttpHeaders.Names.CONNECTION,
HttpHeaders.Values.KEEP_ALIVE);
+ } else {
+ response.headers().set(HttpHeaders.Names.CONNECTION,
HttpHeaders.Values.CLOSE);
+ }
for (Map.Entry<String, List<String>> entry :
nettyResponse.getOutputHeaders().entrySet()) {
diff --git
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/RestHttpRequestDecoder.java
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/RestHttpRequestDecoder.java
index 37aba822..76fb16d7 100644
---
a/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/RestHttpRequestDecoder.java
+++
b/dubbo-rpc-extensions/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/netty/RestHttpRequestDecoder.java
@@ -24,7 +24,6 @@ import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;
import org.apache.dubbo.common.utils.ExecutorUtil;
-import org.apache.dubbo.rpc.protocol.rest.RestHeaderEnum;
import org.apache.dubbo.rpc.protocol.rest.deploy.ServiceDeployer;
import org.apache.dubbo.rpc.protocol.rest.handler.NettyHttpHandler;
import org.apache.dubbo.rpc.protocol.rest.request.NettyRequestFacade;
@@ -73,7 +72,6 @@ public class RestHttpRequestDecoder extends
MessageToMessageDecoder<io.netty.han
} finally {
// write response
try {
-
nettyHttpResponse.addOutputHeaders(RestHeaderEnum.CONNECTION.getHeader(),
"close");
nettyHttpResponse.finish();
} catch (IOException e) {
logger.error(