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

栏目: 软件资讯 · 发布时间: 4年前

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

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

Solon Cloud 是一系列的接口标准和配置规范,算是 Solon 的分布式开发套件方案。

快速了解Solon的材料:

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

《Solon Cloud 分布式服务开发套件清单,感觉受与 Spring Cloud 的不同》

《Solon 的想法与架构笔记》

《Solon 生态插件清单》

《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、发布新的家簇成员表

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

2、强化 Solon Remoting 概念 [ 增加 @Remoting 注解,替代旧的 @Component(remoting=true) ]

//服务端代码1 - 使用tpc通信
@Socket
@Mapping("/demo/socket")
@Remoting
public class DemoRemoting1 implements HelloService{
    public String hello(String name){
        return "Hello " + name;
    }
}

//服务端代码2 - 使用http通信
@Http
@Mapping("/demo/http")
@Remoting
public class DemoRemoting2  implements HelloService{
    public String hello(String name){
        return "Hello " + name;
    }
}

//客户端代码1
@NamiClient(name="demo", path="/demo/socket")
HelloService helloService;

String tmp = helloService.hello("noear");

3、增加 @ClientEndpoint autoReconnect 属性

//autoReconnect 默认为 true
@ClientEndpoint(uri = "tcp://localhost:28080", heartbeatRate = 5, autoReconnect = false)
public class ClientListener implements Listener {
    @Override
    public void onMessage(Session session, Message message) throws IOException {
        System.out.println(message.bodyAsString());
    }
}

相关资料可百度:solon socketd

4、增强 solon-springboot-starter,可将 solon 注入器应用到 springboot bean

当 spring boot 项目迁移到 solon 时,过渡期可以使用这个组件进行混合开发,示例:

//Spring bean
@RestController
public class DemoController{
    //Solon inject
    @CloudConfig("user.name")
    String userName;
    
    //Solon inject
    @NamiClient
    HelloService helloService;
}

5、取消 nami-springboot-starter 组件

因 solon-springboot-starter 的增强,这个组件没必要了。

6、取消 @EnabelNamiClients@EnableSolonCloud@EnableSolon 注解

因 solon-springboot-starter 的增强,这三个注解也没怵要了;所有 Solon 相关的能力,直接可用。

7、取消 @Component remoting 属性

由新 @Remoting 替代

附:项目地址

附:入门示例


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Designing Data-Intensive Applications

Designing Data-Intensive Applications

Martin Kleppmann / O'Reilly Media / 2017-4-2 / USD 44.99

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, w......一起来看看 《Designing Data-Intensive Applications》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具