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(

Reply via email to