webflux|webflux + kakfa + redis + protostuff 高并发/吞吐量数据采集方案
- 在虚拟机 8c32g ,一个tomcat 实现400~500 的并发, 3000QPS 已经快是极限, 由于是阻塞式编程, 导致响应时长的的均值和最值差距相当的大. 通过webflux 可以增加并发量, 同时吞吐量有所改善.
机器: 内网下 8c32g虚拟机 , 1台压测机器, 1台服务. 属于直连压测, 未经过网关.
下面是压测结果.
文章图片
image.png
- webflux 的吞吐量 高于传统servlet 的同步io,大约在 %10~15的效果
- webflux 的耗时相对于传统servlet更加均匀
- 耗时改善不少.
【webflux|webflux + kakfa + redis + protostuff 高并发/吞吐量数据采集方案】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
推荐阅读
- springboot使用redis缓存
- (1)redis集群原理及搭建与使用(1)
- springboot结合redis实现搜索栏热搜功能及文字过滤
- Redis——发布订阅/消息队列
- redis|redis 常见问题一
- 实操Redission|实操Redission 分布式服务
- 二、Redis的五种常用数据类型
- 深入理解redis——布隆过滤器BloomFilter
- redis哨兵模式
- 关于分布式锁|关于分布式锁 Redis 与 Zookeeper 的原理,它们如何实现分布式锁()