Solon

更快、更小、更简单

</> markdown

1、所谓更快:

  • 并发高 2 ~ 3 倍。
  • 启动快 5 ~ 10 倍。具体可参考:《helloworld_wrk_test
solon 1.12.2大小QPS
solon.boot.jdkhttp(bio)0.2m6.4万左右
solon.boot.jlhttp(bio)0.3m13.2万左右
solon.boot.jetty(nio, 支持servlet api)2.2m12.3万左右
solon.boot.undertow(nio, 支持servlet api)4.5m12.0万左右
solon.boot.smarthttp(aio) [国产]0.7m16.6万左右
spring boot 2.3.3大小QPS
spring-boot-starter-tomcat16.1m3.2万左右
spring-boot-starter-jetty16m3.7万左右
spring-boot-starter-undertow16.8m4.4万左右

2、所谓更小:

  • 打包小 50% ~ 90%
  • 内存省 50%
  • 最小 Web 完整开发单位 1Mb(相比 Springboot 项目包,小到可以乎略不计了)

3、所谓更简单:

  • 代码操控:除了注解模式之外,还可以按需手动(不用绕,更直接)。
//手动获取配置(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.3Mb 即可让项目实现 http + mvc 支持。