最近在项目中遇到了严重的并发问题,其实需求很简单,就是app上传的日志我存到数据库,但是app的日志太多了,服务器的cpu直接干满,对了,当前使用的是spring-boot,是同步非阻塞(nio),就在想换成异步非阻塞会怎么样, 首先收集了几个主流的web框架
- java-spring-boot
- java-vertx
- go-gin
- node-fastify
- rust-actix
当然rust-actix算不上主流,但是也算以性能著称 测试工具使用ApacheBench
ab -n 1000 -c 1000 http://127.0.0.1:8888/
这里我也发现了一个奇怪的问题,在Windows上我1000并发没有问题,但是在macos上直接报too many open...
声明: 所测试工程皆为简单的hello-world项目 上图:
单从数据层面看vertx的单次平均耗时最短, 简单排个序吧, 从低到高
- java-vertx
- go-gin
- java-spring-boot
- rust-actix
- node-fastify
actix与预期出入较大, 应该是平台差异也会导致, 晚上回去我用 -c 100 在macos上再看下数据