webflux + kakfa + redis + protostuff 高并发/吞吐量数据采集方案

时间:2021-7-4 作者:qvyue
  1. 在虚拟机 8c32g ,一个tomcat 实现400~500 的并发, 3000QPS 已经快是极限, 由于是阻塞式编程, 导致响应时长的的均值和最值差距相当的大. 通过webflux 可以增加并发量, 同时吞吐量有所改善.

下面是通过jvm 调优后, 不同的web架构的压力测试图.
机器: 内网下 8c32g虚拟机 , 1台压测机器, 1台服务. 属于直连压测, 未经过网关.
下面是压测结果.

webflux + kakfa + redis + protostuff 高并发/吞吐量数据采集方案
image.png
  1. webflux 的吞吐量 高于传统servlet 的同步io,大约在 %10~15的效果
  2. webflux 的耗时相对于传统servlet更加均匀
  3. 耗时改善不少.

总体来说, 全异步的webflux 确实比传统的servlet 要优秀不少.

jvm 调优参数相关 使用g1垃圾垃圾回收,比较激进. 对于webflux 来说效果优化特别好.

--server.port=8081 -Xms8g -Xmx8g -Xmn4g -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -Xloggc:/dev/shm/mq_gc_%mxs.log
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。