From 87f7b82e0aec976258e77d41a12a79c0c454317d Mon Sep 17 00:00:00 2001 From: Redkale Date: Sat, 14 Jan 2023 17:08:04 +0800 Subject: [PATCH] =?UTF-8?q?Server=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/net/AsyncNioTcpProtocolServer.java | 6 +++--- .../org/redkale/net/AsyncNioUdpProtocolServer.java | 4 ++-- src/main/java/org/redkale/net/Server.java | 4 ++-- src/main/java/org/redkale/net/http/HttpServer.java | 10 +++++----- src/main/java/org/redkale/net/sncp/SncpServer.java | 10 +++++----- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/redkale/net/AsyncNioTcpProtocolServer.java b/src/main/java/org/redkale/net/AsyncNioTcpProtocolServer.java index 2fea85e8b..75cba385c 100644 --- a/src/main/java/org/redkale/net/AsyncNioTcpProtocolServer.java +++ b/src/main/java/org/redkale/net/AsyncNioTcpProtocolServer.java @@ -92,8 +92,8 @@ class AsyncNioTcpProtocolServer extends ProtocolServer { LongAdder createResponseCounter = new LongAdder(); LongAdder cycleResponseCounter = new LongAdder(); - ObjectPool bufferPool = server.createBufferPool(createBufferCounter, cycleBufferCounter, server.bufferPoolSize); - ObjectPool safeResponsePool = server.createResponsePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); + ObjectPool safeBufferPool = server.createBufferSafePool(createBufferCounter, cycleBufferCounter, server.bufferPoolSize); + ObjectPool safeResponsePool = server.createResponseSafePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); final int respPoolMax = server.getResponsePoolSize(); ThreadLocal> localResponsePool = ThreadLocal.withInitial(() -> { if (!(Thread.currentThread() instanceof WorkThread)) { @@ -119,7 +119,7 @@ class AsyncNioTcpProtocolServer extends ProtocolServer { (pool == null ? safeResponsePool : pool).accept(v); }; final String threadNameFormat = server.name == null || server.name.isEmpty() ? "Redkale-IOServletThread-%s" : ("Redkale-" + server.name.replace("Server-", "") + "-IOServletThread-%s"); - this.ioGroup = new AsyncIOGroup(false, threadNameFormat, null, server.bufferCapacity, bufferPool); + this.ioGroup = new AsyncIOGroup(false, threadNameFormat, null, server.bufferCapacity, safeBufferPool); this.ioGroup.start(); this.acceptThread = new Thread() { diff --git a/src/main/java/org/redkale/net/AsyncNioUdpProtocolServer.java b/src/main/java/org/redkale/net/AsyncNioUdpProtocolServer.java index c8469ba33..1a6a389f5 100644 --- a/src/main/java/org/redkale/net/AsyncNioUdpProtocolServer.java +++ b/src/main/java/org/redkale/net/AsyncNioUdpProtocolServer.java @@ -89,8 +89,8 @@ class AsyncNioUdpProtocolServer extends ProtocolServer { LongAdder createResponseCounter = new LongAdder(); LongAdder cycleResponseCounter = new LongAdder(); - ObjectPool safeBufferPool = server.createBufferPool(createBufferCounter, cycleBufferCounter, server.bufferPoolSize); - ObjectPool safeResponsePool = server.createResponsePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); + ObjectPool safeBufferPool = server.createBufferSafePool(createBufferCounter, cycleBufferCounter, server.bufferPoolSize); + ObjectPool safeResponsePool = server.createResponseSafePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); ThreadLocal> localResponsePool = ThreadLocal.withInitial(() -> { if (!(Thread.currentThread() instanceof WorkThread)) { return null; diff --git a/src/main/java/org/redkale/net/Server.java b/src/main/java/org/redkale/net/Server.java index 82ae9cf05..5550b2d65 100644 --- a/src/main/java/org/redkale/net/Server.java +++ b/src/main/java/org/redkale/net/Server.java @@ -423,10 +423,10 @@ public abstract class Server createBufferPool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize); + protected abstract ObjectPool createBufferSafePool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize); //必须在 createContext()之后调用 - protected abstract ObjectPool createResponsePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize); + protected abstract ObjectPool

createResponseSafePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize); public void shutdown() throws IOException { long s = System.currentTimeMillis(); diff --git a/src/main/java/org/redkale/net/http/HttpServer.java b/src/main/java/org/redkale/net/http/HttpServer.java index c7dd13811..cf9abce5e 100644 --- a/src/main/java/org/redkale/net/http/HttpServer.java +++ b/src/main/java/org/redkale/net/http/HttpServer.java @@ -18,7 +18,7 @@ import java.util.function.Supplier; import java.util.logging.Level; import org.redkale.boot.Application; import org.redkale.mq.*; -import org.redkale.net.*; +import org.redkale.net.Server; import org.redkale.net.http.HttpContext.HttpContextConfig; import org.redkale.net.http.HttpResponse.HttpResponseConfig; import org.redkale.net.sncp.Sncp; @@ -541,7 +541,7 @@ public class HttpServer extends Server createBufferPool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize) { + protected ObjectPool createBufferSafePool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize) { final int rcapacity = this.bufferCapacity; ObjectPool bufferPool = ObjectPool.createSafePool(createCounter, cycleCounter, bufferPoolSize, (Object... params) -> ByteBuffer.allocateDirect(rcapacity), null, (e) -> { @@ -555,9 +555,9 @@ public class HttpServer extends Server createResponsePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize) { - Creator creator = (Object... params) -> new HttpResponse(this.context, new HttpRequest(this.context), this.respConfig); - ObjectPool pool = ObjectPool.createSafePool(createCounter, cycleCounter, responsePoolSize, creator, (x) -> ((HttpResponse) x).prepare(), (x) -> ((HttpResponse) x).recycle()); + protected ObjectPool createResponseSafePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize) { + Creator creator = (Object... params) -> new HttpResponse(this.context, new HttpRequest(this.context), this.respConfig); + ObjectPool pool = ObjectPool.createSafePool(createCounter, cycleCounter, responsePoolSize, creator, HttpResponse::prepare, HttpResponse::recycle); return pool; } } diff --git a/src/main/java/org/redkale/net/sncp/SncpServer.java b/src/main/java/org/redkale/net/sncp/SncpServer.java index 07d28df99..9e4aecaf0 100644 --- a/src/main/java/org/redkale/net/sncp/SncpServer.java +++ b/src/main/java/org/redkale/net/sncp/SncpServer.java @@ -10,7 +10,7 @@ import java.util.List; import java.util.concurrent.atomic.*; import org.redkale.boot.Application; import org.redkale.convert.bson.BsonFactory; -import org.redkale.net.*; +import org.redkale.net.Server; import org.redkale.net.sncp.SncpContext.SncpContextConfig; import org.redkale.service.Service; import org.redkale.util.*; @@ -127,7 +127,7 @@ public class SncpServer extends Server createBufferPool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize) { + protected ObjectPool createBufferSafePool(LongAdder createCounter, LongAdder cycleCounter, int bufferPoolSize) { final int rcapacity = this.bufferCapacity; ObjectPool bufferPool = ObjectPool.createSafePool(createCounter, cycleCounter, bufferPoolSize, (Object... params) -> ByteBuffer.allocateDirect(rcapacity), null, (e) -> { @@ -141,9 +141,9 @@ public class SncpServer extends Server createResponsePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize) { - Creator creator = (Object... params) -> new SncpResponse(this.context, new SncpRequest(this.context)); - ObjectPool pool = ObjectPool.createSafePool(createCounter, cycleCounter, responsePoolSize, creator, (x) -> ((SncpResponse) x).prepare(), (x) -> ((SncpResponse) x).recycle()); + protected ObjectPool createResponseSafePool(LongAdder createCounter, LongAdder cycleCounter, int responsePoolSize) { + Creator creator = (Object... params) -> new SncpResponse(this.context, new SncpRequest(this.context)); + ObjectPool pool = ObjectPool.createSafePool(createCounter, cycleCounter, responsePoolSize, creator, SncpResponse::prepare, SncpResponse::recycle); return pool; }