noear

相对于 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

项目地址

相关文章: