相對於 Spring Boot 和 Spring Cloud 的專案
- 啟動快 5 ~ 10 倍
- qps 高 2~ 3 倍
- 執行時記憶體節省 1/3 ~ 1/2
- 打包可以縮小到 1/2 ~ 1/10(比如,90Mb 的變成了 9Mb)
關於 Solon
Solon 是一個更現代感的應用開發框架,輕量、開放生態型的。支援 Web、Data、Job、Remoting、Cloud 等任何開發場景。
- 強調,剋制 + 簡潔 + 開放 + 生態的原則
- 力求,更小、更少、更快、更自由的體驗
目前有近130個生態外掛,含蓋了日常開發的各種需求。
本次主要更新
- 增加 Session::sendAsync() 介面,便於支援跨執行緒發訊息
- 外掛 solon.boot.jetty 的 weboskcet 增加支援
- 外掛 solon.boot.undertow 的 weboskcet 增加支援
- 外掛 solon.boot.websocket 的 weboskcet 增加支援
- 外掛 solon.boot.smarthttp 的 weboskcet 增加支援
- 外掛 solon.boot.socketd.jdksocket 的 socket 增加支援
- 外掛 solon.boot.socketd.netty 的 socket 增加支援
- 外掛 solon.boot.socketd.smartsocket 的 socket 增加支援
- 增加 server.ssl.* 專屬ssl配置屬性
- 外掛 solon.boot.jlhttp,增加 ssl 支援
- 外掛 solon.boot.jetty,增加 ssl 支援
- 外掛 solon.boot.undertow,增加 ssl 支援
- 外掛 solon.schedule 新增 純手工控制能力
public class DemoApp {
public static void main(String[] args) throws Throwable {
Solon.start(DemoApp.class, args, app -> {
//刪掉job
app.get("/removeJob", (ctx) -> {
String name = ctx.param("name");
if (Utils.isNotEmpty(name)) {
JobManager.remove(name);
}
});
});
JobManager.add("job1", 1000 * 3, false, () -> {
System.out.println("job1::" + LocalDateTime.now());
});
JobManager.add("job2", "0/10 * * * * ? *", false, () -> {
System.out.println("job2::" + LocalDateTime.now());
});
JobManager.start();
}
}
- 外掛 dubbo-solon-plugin 的註解新增屬性模板支援
@Controller
public class DemoController{
@Reference(group="${demo.group}")
UserService userService;
//...
}
- 優化 Bean 的泛型基類在容器的註冊
進一步瞭解 Solon
專案地址
- gitee:https://gitee.com/noear/solon
- github:https://github.com/noear/solon
- website: https://solon.noear.org