Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何提高WebSocket吞吐量_Java_Performance_Websocket_Vert.x_Java Websocket - Fatal编程技术网

Java 如何提高WebSocket吞吐量

Java 如何提高WebSocket吞吐量,java,performance,websocket,vert.x,java-websocket,Java,Performance,Websocket,Vert.x,Java Websocket,我需要从许多通过web套接字连接到java服务器的客户机中提取数据 有很多web套接字实现,我选择了vert.x。 我做了一个简单的演示,在那里我听json的文本帧,用jackson解析它们并发送响应。Json解析器对吞吐量没有显著影响 我有2个或10个客户,总速度为每秒2.5公里 然后我尝试使用缓冲,客户端不等待每个响应,而是在服务器确认后发送一批消息(30k-90k),速度提高到每秒8k 我看到java进程有一个CPU瓶颈—1个内核被100%使用。 平均而言,nodejs客户端cpu消耗仅为

我需要从许多通过web套接字连接到java服务器的客户机中提取数据

有很多web套接字实现,我选择了vert.x。 我做了一个简单的演示,在那里我听json的文本帧,用jackson解析它们并发送响应。Json解析器对吞吐量没有显著影响

我有2个或10个客户,总速度为每秒2.5公里

然后我尝试使用缓冲,客户端不等待每个响应,而是在服务器确认后发送一批消息(30k-90k),速度提高到每秒8k

我看到java进程有一个CPU瓶颈—1个内核被100%使用。 平均而言,nodejs客户端cpu消耗仅为5%。 即使只有一个客户端,服务器也会吃掉几乎整个内核

您认为值得尝试其他websocket实现,如jetty吗? 有没有办法用多核来扩展vert.x


在我将日志级别从debug更改为info之后,我有70k。调试级别导致vert.x为每个帧打印消息。

可以通过配置DeploymentOptions等方式指定verticle(线程)实例的数量


您可以在一台机器上创建超过60k个连接,因此我假设一个连接的平均时间不到一秒钟。这是你在生产中期望的情况吗?要比较其他解决方案,您可以尝试运行一些听起来不正确的解决方案。这是非常低的性能。听起来vert.x的并行化配置不正确。您是否只使用一条垂直线(线)

Kaazing网关是首批WS实现之一。默认情况下,它使用多个内核,并可进一步配置线程等。我们有用户使用它进行大规模物联网部署,因此您的问题不是JVM。 如果您感兴趣,以下是github回购协议:

充分披露:我为Kaazing工作