Solon

更快、更小、更自由

所谓更快:

本机 Helloworld 测试,Qps 可达10万之多。具体可参考:《helloworld_wrk_test

solon 1.10.1大小QPS
solon.boot.jlhttp(bio)0.2m4.7万左右
solon.boot.jdkhttp(bio)0.2m6.4万左右
solon.boot.jetty(nio, 支持servlet api)1.9m10.7万左右
solon.boot.undertow(nio, 支持servlet api)4.3m11.3万左右
solon.boot.smarthttp(aio)[孵化]0.4m12.4万左右
spring boot 2.3.3大小QPS
spring-boot-starter-tomcat16.1m3.2万左右
spring-boot-starter-jetty16m3.7万左右
spring-boot-starter-undertow16.8m4.4万左右

所谓更小:

内核 0.1Mb,最小 Web 完整开发单位 1Mb(相比 Springboot 项目包,小到可以乎略不计了)

所谓更自由:

代码操控自由:除了注解模式之外,还可以按需手动。

//手动获取配置(Props 为 Properties 增强版)
Props db = Solon.cfg().getProp("db");

//手动获取容器里的Bean
UserService userService = Solon.context().getBean(UserService.class);

//手动监听http post请求
Solon.app().post("/user/update", x-> userService.updateById(x.paramMap()));

//手动添加个RPC服务
Solon.app().add("/rpc/", HelloService.class, true);

//手动获取一个RPC服务消费端
HelloService helloService = Nami.builder().create(HelloService.class);

//手动为容器添加组件
Solon.context().wrapAndPut(DemoService.class);

框架选择自由:

可以用 solon-web 这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非 Solon 项目添加solon.boot.jlhttp,0.2Mb 即可让项目实现 http+mvc 支持。