Solon 1.8.0 发布,云原生微服务开发框架
相对于 Spring Boot 和 Spring Cloud 的项目
- 启动快 5 ~ 10 倍
- qps 高 2~ 3 倍
- 运行时内存节省 1/3 ~ 1/2
- 打包可以缩小到 1/2 ~ 1/10(比如,90Mb 的变成了 9Mb)
- 基于 app.name 进行注册发现 与 k8s svc 相互对应
- 支持 Service Mesh 架构部署方案
关于 Solon
Solon 是一个更现代感的应用开发框架,轻量、开放生态型的。支持 Web、Data、Job、Remoting、Cloud 等任何开发场景。
- 强调,克制 + 简洁 + 开放 + 生态的原则
- 力求,更小、更少、更快、更自由的体验
目前有近130个生态插件,含盖了日常开发的各种需求:

本次主要更新内容
- 新增 solon.extend.hotplug 插件(提供业务插件 '热插拨' 和 '热管理' 支持)
public class DemoApp {
public static void main(String[] args) {
Solon.start(App.class, args, app -> {
//添加待管理的插件
PluginManager.add("add1", "/x/x/x.jar");
PluginManager.add("add2", "/x/x/x2.jar");
app.get("start", ctx -> {
//启动插件
PluginManager.start("add1");
ctx.output("OK");
});
app.get("stop", ctx -> {
//停止插件
PluginManager.stop("add1");
ctx.output("OK");
});
});
}
}
更多介绍看官网的:solon.extend.hotplug
- 调整 AopContext ,更具隔离性
- 调整 AopContext::beanOnloaded 参数由 Runnable 改为:Consumer
- 调整 Plugin::start 参数由 SolonApp 改为:AopContext
public class Plugin1Impl implements Plugin {
@Override
public void start(AopContext context) {
//通过当前上下文扫描,具有隔离性
context.beanScan(Plugin1Impl.class);
context.beanOnloaded(ctx->{
//回调有上下文信息,方便做多插件可复用的设计
});
}
}
- 修复 @Cache 在函数里有逗号时无法删除缓存的问题
@Controller
public class DemoController {
/**
* 执行结果缓存10秒,使用 key=test_${label} 并添加 test 标签
* */
@Cache(key="test_${label}", tags = "test" , seconds = 10)
@Mapping("/cache/")
public Object test(int label) {
return new Date();
}
/**
* 执行后,清除 标签为 test 的所有缓存
* */
@CacheRemove(tags = "test")
@Mapping("/cache/clear")
public String clear() {
return "清除成功(其实无效)-" + new Date();
}
/**
* 执行后,更新 key=test_${label} 的缓存
* */
@CachePut(key = "test_${label}")
@Mapping("/cache/clear2")
public Object clear2(int label) {
return new Date();
}
}
- 修复 Gateway 对默认接口识别失效的问题
@Mapping("/api/v3/app/**")
@Component
public class ApiGatewayV3 extends UapiGateway {
@Override
protected void register() {
filter(new BreakerFilter()); //融断
before(new StartHandler()); //开始计时
before(new ParamsParseHandler()); //参数解析
before(new ParamsSignCheckHandler(new Md5Encoder())); //参数签名较验
before(new ParamsRebuildHandler(new AesDecoder())); //参数重构
after(new OutputBuildHandler(new AesEncoder())); //输出构建
after(new OutputSignHandler(new Md5Encoder())); //输出签名
after(new OutputHandler()); //输出
after(new EndBeforeLogHandler()); //日志
after(new EndHandler("v3.api.app")); //结束计时
//添加一批具体的接口处理Bean
addBeans(bw -> "api".equals(bw.tag()));
}
}
- 修复 rocketmq-solon-plugin ,消费异常时仍返回成功的问题
- 优化 rabbitmq-solon-plugin ,消费异常时的处理
项目地址
- gitee:https://gitee.com/noear/solon
- github:https://github.com/noear/solon
- website: https://solon.noear.org
Solon 1.8.0 发布,云原生微服务开发框架的更多相关文章
- Solon 1.8.3 发布,云原生微服务开发框架
相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...
- NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架.Dapr 确保开发人员专注 ...
- .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- 【版本发布】JAVA微服务开发框架,Jeecg-P3 1.0.0 重构版本发布
1.项目介绍 Jeecg-P3是一个微服务框架,采用插件式模式开发:业务插件以JAR方式提供,松耦合可插拔支持独立部署,也可无缝集成Jeecg平台中,目前jeecg已经提供了在线聊天,我的邮箱等一系列 ...
- 云原生生态周报 Vol. 8 | Gartner 发布云原生趋势
业界要闻 Gartner 发布云原生基础设施未来的八大趋势:权威分析机构 Gartner 在对 2020 年技术趋势的展望当中指出:“预计2020年所有领先的容器管理软件均内置服务融合技术,到2022 ...
- 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)
灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...
- 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config
系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...
- 【版本号公布】Jeecg-P3 1.0 公布,J2EE微服务框架(插件开发)
JEECG-P3 1.0 公布了! JEECG-P3 1.0是一个J2EE微服务框架(插件开发). 特点:业务组件以JAR方式提供,插件模式.松耦合.可插拔.支持独立部署,也能够无缝集成Jeecg平台 ...
随机推荐
- WePY为了兼容支付宝小程序,改了好几十行代码
早在16年底,就有流出支付宝在做小程序的事情,见<如何看待支付宝推出「小程序」?>,今年8月18号支付宝版本小程序的终于公测,十月怀胎实属不易啊. 紧接着就有人给我提ISSUE了: 此时我 ...
- 前端每日实战:134# 视频演示如何用 CSS 和 GSAP 创作一个树枝发芽的 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/LJmpXZ 可交互视频 此视频是可 ...
- Json学习笔记、思维导图
- 【Android开发】用WebView访问证书有问题的SSL网页
Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点. ...
- 【Android开发】URL 转义与反转义
1,转义 @org.junit.Test public void testEncode(){ String url="http://192.168.0.19:8888/cas/login&q ...
- px,rem,em 通过媒体查询统一的代码
@media only screen and (max-width: 1080px), only screen and (max-device-width:1080px) { html,body { ...
- nodeJs入门的第一节课
nodejs是什么? nodejs的架构模式以及优缺点 nodejs异步IO nodejs事件驱动 nodejs单线程 nodejs应用场景 一.nodejs是什么? 1.1nodejs是一个开源的. ...
- 【c++】容器的基本操作
操作\容器 vector list string set stack queue map 插入 push_bcak().insert() push_back() .push_front().inser ...
- Ubuntu安装开发者平台Backstage
Ubuntu安装开发者平台Backstage 什么是Backstage? Backstage是一个构建开发者门户的开源平台.通过支持一个集中的软件分类,Backstage可以保存并发布你的微服务和基础 ...
- SpringCloud Function SpEL注入
SpringCloud Function SpEL注入 漏洞分析