我正在使用spring-boot测试服务器.但是,我在测试过程中遇到了一些问题.
我的测试是服务器使用了多少内存来增加Web套接字会话(客户端数量).
1,000个客户(小于9000个会话)没有进行测试的问题.但是,当我尝试测试10k连接时,服务器连接几乎达到10,000.(有时创建会话直到9990,有时候9988,9996这样,不是特定限制套接字的数量)之后,它只是停止创建会话,没有错误只是没有回应.
如果某些客户端超时并释放连接,则等待连接的其他客户端可以获得连接.
'环境'tomcat:8.0.36 spring-boot:1.3.3 java:1.8
对于解决方案,我试过了
增加堆大小.
我在application.porperties中设置了server.tomcat.max-thread = 20000.
我对这个问题很好奇.如果你们都知道这个问题并有想法,请告诉我原因.谢谢.
我测试了nextrtc-signaling-server,它是Java的开源.但我遇到了构建Maven问题.我希望这个问题得到解决.
我的控制台日志.
[INFO] Building jar: D:\signallinServer\nextrtc-signaling-server\target\nextrtc-signaling-server-0.0.4-SNAPSHOT-javadoc.jar
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ nextrtc-signaling-server ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.430 s
[INFO] Finished at: 2016-08-29T11:12:34+09:00
[INFO] Final Memory: 26M/223M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project nextrtc-signaling-server: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java are missing or invalid -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using …Run Code Online (Sandbox Code Playgroud) 我正在开发Websocket Java客户端,但我总是无法连接到服务器。我很感激你帮助我。
错误信息
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: javax.websocket.DeploymentException: Connection to 'wss://localhost:8443/index' failed.
at com.lge.racss.test.WebsocketClientEndpoint.<init>(WebsocketClientEndpoint.java:88)
at com.lge.racss.test.Application.main(Application.java:16)
... 6 more
Caused by: javax.websocket.DeploymentException: Connection to 'wss://localhost:8443/index' failed.
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket._connect(GrizzlyClientSocket.java:382)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.access$000(GrizzlyClientSocket.java:103)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:228)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:224)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.connect(GrizzlyClientSocket.java:242)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.openClientSocket(GrizzlyClientContainer.java:95)
at org.glassfish.tyrus.client.ClientManager$1$1.run(ClientManager.java:575)
at org.glassfish.tyrus.client.ClientManager$1.run(ClientManager.java:622)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.tyrus.client.ClientManager$SameThreadExecutorService.execute(ClientManager.java:775)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:447)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:337)
at com.lge.racss.test.WebsocketClientEndpoint.<init>(WebsocketClientEndpoint.java:84)
... 7 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] …Run Code Online (Sandbox Code Playgroud) 我正在使用 Java websocket,但收到一个我不明白的错误。
当服务器获取 aRuntimeException或NullPointerException等时,onError将调用该方法。
之后(完成 onError 方法),onError再次调用该方法。第二次之后,EOFException连续发生。
您知道为什么会在方法EOFException之后发生吗?onError
这是我的错误日志:
java.io.EOFException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1267)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.isReadyForRead(NioEndpoint.java:1176)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:58)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud) java ×3
spring ×2
websocket ×2
eclipse-rcp ×1
eofexception ×1
exception ×1
maven ×1
spring-boot ×1
ssl ×1
tomcat ×1