• Spring Boot & Cloud 轻量替代框架 Solon 1.3.33 发布


    Solon 是一个微型的Java开发框架。强调,克制 + 简洁 + 开放的原则;力求,更小、更快、更自由的体验。支持:RPC、REST API、MVC、Micro service、WebSocket、Socket 等多种开发模式。

    Solon Cloud 是一系列的接口标准和配置规范。是 Solon 的微服务模式开发套件方案。

    替代?还能说些什么异同之处吗?

    《Solon 特性简集,相较于 Springboot 有什么区别?》

    《Solon Cloud 分布式服务开发套件清单与快速概览》

    《Solon 的架构笔记》

    所谓更小:

    内核0.1m,最小的接口开发单位0.2m(相较于 Dubbo、Springboot 的依赖包,小到可以乎略不计)

    所谓更快:

    本机http helloworld测试,Qps可达12万之多。可参考:《helloworld_wrk_test

    所谓更自由:(代码操控自由)

    // 除了注解模式之外,还可以按需手动
    //
    //手动获取配置(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);
    

    本次版本主要变化:

    1、Solon logging 增加记录器级别控制

    solon.logging.logger:
      "org.aaa.*":
        level: INFO
      "org.xxx.xxx.yyy":
        level: INFO
    

    2、Solon cloud 增加 zookeeper-solon-plugin 组件,提供配置与注册服务

    配置好后,使用标准的 Solon cloud 注解与接口即可使用。配置示例:

    solon.cloud.zookeeper:
      server: "localhost:2181"
      config:
        load: "test.properties"
    
    #zk日志太猛了,限制一下
    solon.logging.logger:
      "org.apache.zookeeper.*":
        level: "WARN"
    

    代码使用:

    @Configuration
    public class Config {
        @Bean
        public DataSource ds(@CloudConfig("${demo.db1}") HikariDataSource ds){
            System.out.println(ds.getUsername() + ":" + ds.getJdbcUrl());
            return ds;
        }
    }
    
    //手动获取配置:Config cfg = CloudClient.config().pull(Solon.cfg().appGroup(), "demo.db1");
    

    3、Solon cloud 增加 snowflake-id-solon-plugin 组件,提供雪花算法ID生成服务

    此组件使用应用信息做为 dataId,使用ip:port做为workId。引入包后,可直接通过接口使用

    long logId = CloudClient.id().generate();
    

    附:项目地址

    附:入门示例

  • 相关阅读:
    Beta 冲刺 (5/7)
    Beta 冲刺 (4/7)
    软件产品案例分析(团队)
    Beta 冲刺 (3/7)
    Beta 冲刺 (2/7)
    Beta 冲刺 (1/7)
    BETA 版冲刺前准备
    个人作业——软件工程实践总结作业
    Beta 答辩总结
    Beta 冲刺 (7/7)
  • 原文地址:https://www.cnblogs.com/noear/p/14750563.html
Copyright © 2020-2023  润新知