更快、更小、更自由
所谓更快:
本机 Helloworld 测试,Qps 可达10万之多。具体可参考:《helloworld_wrk_test》
solon 1.6.6 | 大小 | QPS |
---|---|---|
solon.boot.jlhttp(bio) | 0.2m | 4.7万左右 |
solon.boot.jdkhttp(bio) | 0.2m | 6.4万左右 |
solon.boot.jetty(nio, 支持servlet api) | 1.9m | 10.7万左右 |
solon.boot.undertow(nio, 支持servlet api) | 4.3m | 11.3万左右 |
solon.boot.smarthttp(aio)[孵化] | 0.4m | 12.4万左右 |
spring boot 2.3.3 | 大小 | QPS |
---|---|---|
spring-boot-starter-tomcat | 16.1m | 3.2万左右 |
spring-boot-starter-jetty | 16m | 3.7万左右 |
spring-boot-starter-undertow | 16.8m | 4.4万左右 |
所谓更小:
内核 0.1Mb,最小 Web 完整开发单位 1Mb(相比Springboot项目包,小到可以乎略不计了)
所谓更自由:
代码操控自由:除了注解模式之外,还可以按需手动。
//手动获取配置(Props 为 Properties 增强版)
Props db = Solon.cfg().getProp("db");
//手动获取容器里的Bean
UserService userService = Aop.get(UserService.class);
//手动监听http post请求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));
//手动添加个RPC服务
Solon.global().add("/rpc/", HelloService.class, true);
//手动获取一个RPC服务消费端
HelloService helloService = Nami.builder().create(HelloService.class);
//手动为容器添加组件
Aop.wrapAndPut(DemoService.class);
框架选择自由:
可以用 solon-web 这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非Solon项目添加solon.boot.jlhttp,0.2Mb 即可让项目实现 http+mvc 支持。