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

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 替代

附:项目地址

附:入门示例

Spring Boot & Cloud 轻量替代框架 Solon 1.4.1 发布的更多相关文章

  1. Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布

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

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

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

  3. Spring Boot & Cloud 轻量替代框架 Solon 1.3.35 发布

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

  4. Spring Boot 轻量替代框架 Solon 1.3.15 发布

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

  5. Spring Boot 轻量替代框架 Solon 1.3.18 发布

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

  6. Spring Boot 轻量替代框架 Solon 1.3.20 发布

    Solon 是一个微型的Java开发框架.项目2018年启动,参考过大量前人作品:内核0.1m的身材,超高的跑分,以及良好的使用体验.支持:RPC.REST API.MVC.WebSocket.Soc ...

  7. Spring Boot 轻量替代框架 Solon 1.3.29 发布

    Solon 是一个微型的Java开发框架.项目2018年启动,参考过大量前人作品:内核0.1m的身材,超高的跑分,以及良好的使用体验.支持:RPC.REST API.MVC.WebSocket.Soc ...

  8. Springboot 轻量替代框架 Solon 1.3.10 发布

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

  9. Spring Boot 轻量替代框架 Solon 的架构笔记

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

随机推荐

  1. python常见的错误异常

    1.AssertionError 该异常在assert()语句运行失败时输出 2.AttributeError 该异常在参考或设置属性失败时输出 eg:class Gs: pass g = Gs() ...

  2. Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)

    1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...

  3. 如何动态生成EasyUI的表头

    需求 前几天遇到了这样一个需求,在页面上展示一组数据,但是表头不固定,需要动态加载出来.比如这次查询表头有[姓名][年龄],可能下次查询表头就变成了[姓名][年龄][性别]. 思路简介 我刚刚接手这个 ...

  4. 使用oracle序列+oracle定时任务获取每月从1开始的流水码

    --创建序列 --入库create sequence rk_seq;--出库create sequence ck_seq;--移库create sequence yk_seq; --创建存储过程 cr ...

  5. springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署

    知识点梳理 课堂讲义 02-SpringBoot自动配置-@Conditional使用 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载 ...

  6. Linux标准输入、重定向与参数传递

    Linux标准输入.重定向与参数传递 按惯例,每当运行一个新程序时,所有shell都为其打开3个文件描述符,即标准输入.标准输出以及标准错误.如果不做特殊处理,例如就像简单的命令ls,则这三个描述符都 ...

  7. 用递归求n皇后问题

    此问题是指在n*n的国际象棋棋盘上 ,放置n个皇后,使得这n个皇后均不在,同一行,同一列,同一对角线上,求出合法的方案的数目. 本题可以简单转化为就是求n的全排列中的数放在棋盘上使得这几组数,符合均不 ...

  8. Linux保护机制和绕过方式

    Linux保护机制和绕过方式 CANNARY(栈保护) ​ 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行.用C ...

  9. 【笔记】《Redis设计与实现》chapter12 事件

    12.1 文件事件 Redis基于Reactor模式开发了自己的网络事件处理器:这个处理器被称为文件时间处理器: 文件时间处理器使用IO多路复用程序来同时监听多个套接字,并根据套接字目前执行的任务来为 ...

  10. Run Horovod

    Run Horovod https://horovod.readthedocs.io/en/stable/running_include.html https://horovod.readthedoc ...