Solon,是一个轻量级的应用开发框架。更快、更小、更自由!
支持JDK8+;主框架0.1Mb;组合不同的插件应对不同需求;方便定制;快速开发。
一系列分布式开发的接口标准和配置规范,相当于DDD模式里的防腐层概念。是 Solon 的微服务架构模式开发解决方案。 目前已适配了一系列的插件用于支持这一标准:《Solon Cloud 分布式服务开发套件清单,感觉受与 Spring Cloud 的不同》
其中,Water 项目 是一站式支持 Solon Cloud 系列标准的支撑平台。 功能相当于:consul + rabbitmq + elk + prometheus + openFaas + quartz + 等等,并有机结合在一起。一直与 Solon 项目伴生成长。
//Handler 模式:
public class App{
public static void main(String[] args){
SolonApp app = Solon.start(App.class,args);
app.get("/",(c)->c.output("Hello world!"));
}
}
//Controller 模式:(mvc or rest-api)
@Controller
public class App{
public static void main(String[] args){
Solon.start(App.class,args);
}
//限定 put 方法类型
@Put
@Mapping("/")
public String hello(String name){
return "Hello " + name;
}
}
//Remoting 模式:(rpc)
@Mapping("/")
@Remoting
public class App implements HelloService{
public static void main(String[] args){
Solon.start(App.class,args);
}
@Override
public String hello(){
return "Hello world!";
}
}
组件 | 说明 |
org.noear:solon-parent | 框架版本管理 |
org.noear:solon | 主框架 |
org.noear:nami | 伴生框架(做为solon remoting 的客户端) |
org.noear:solonhat | 文档框架 |
组件 | 说明 |
org.noear:solon-lib | 快速开发基础集成包 |
org.noear:solon-api | solon-lib + jlhttp boot;快速开发接口应用 |
org.noear:solon-web | solon-api + freemarker + sessionstate;快速开发WEB应用 |
org.noear:solon-beetl-web | solon-api + beetl + beetlsql + sessionstate;快速开发WEB应用 |
org.noear:solon-enjoy-web | solon-api + enjoy + arp + sessionstate;快速开发WEB应用 |
org.noear:solon-rpc | solon-api + nami;快速开发RPC应用 |
org.noear:solon-cloud | solon-rpc + consul;快速开发微服务应用 |
本机 Helloworld 测试,Qps 可达10万之多。
solon 1.3.35 | 大小 | QPS |
solon.boot.jlhttp(bio) | 0.2m | 4.7万左右 |
solon.boot.jetty(nio, 支持servlet api) | 1.9m | 10.7万左右 |
solon.boot.undertow(nio, 支持servlet api) | 4.3m | 11.3万左右 |
solon.boot.smarthttp(aio) | 0.4m | 12.4万左右 |
spring boot 2.3.3 | 大小 | QPS |
spring-boot-starter-tomcat | 16.1m | 3.2万左右 |
spring-boot-starter-jetty | 16m | 3.7万左右 |
spring-boot-starter-undertow | 16.8m | 4.4万左右 |
内核 0.1Mb,最小 Web 完整开发单位 1Mb(相比Springboot项目包,小到可以乎略不计了)
代码操控自由:除了注解模式之外,还可以按需手动。
//手动获取配置(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);
框架选择自由:
可以用 solon-web 这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非Solon项目添加solon.boot.jlhttp,0.2Mb 即可让项目实现 http+mvc 支持。
项目启动以来,参考过大量前人的作品。尤其是 Spring boot 和 Javalin ,吸取了诸多优点,且避开很多繁重的设计。历时多年,内核始终保持 0.1Mb 的身材,超高的跑分,良好而自由的使用体验。
强调:克制 + 简洁 + 开放的原则。
力求:更小、更快、更自由的体验。
Http、Socket、WebSocket。不同的通讯信号,进行统一架构处理......并且小巧。 对于 Socket 和 WebSocket,在原 消息+监听 的模式之外增加了 上下文+处理 模式。
关于 Http 信号提供者,Servlet 或 NoServlet 都可以。如 JlHttp(NoServlet)、Jetty(Servlet)、reactor-netty......
串行的处理过程(含四个事件扩展点 + 两个函数扩展点),代码直接、没有什么模式。易明
使用Apache2.0开源协议
私信回复:应用开发框架
或访问一飞开源:https://code.exmay.com/
页面更新:2024-05-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号