solon

Springboot mini

和自甴很熟 提交于 2021-01-23 23:36:33
Solon 详解: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播 Solon详解(五)- Solon扩展机制之Solon Plugin Solon详解(六)- Solon的校验框架使用、定制与扩展 Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330 Solon详解(八)- Solon的缓存框架使用和定制 Solon详解(九)- 渲染控制之定制统一的接口输出 Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目? Springboot mini - Solon 的核心 在上篇中我们成功运行了一个简单的web应用;本篇将对它的启动过程、扩展体系和应用属性配置进行介绍。 (一)Solon.start(source, args, builder) 内部执行过程(即Solon的启动过程) 实例化 Solon.global() 加载应用属性配置 加载扩展文件夹 扫描插件并排序记录(插件也可叫扩展组件) 运行builder函数(如果它不为null) 运行插件 扫描source目录并加载java bean 加载渲染关系 完成 了解这个过程非常之重要,尤其是有兴致开发插件的同学:你的插件在运行之前

Solon rpc 之 SocketD 协议

巧了我就是萌 提交于 2021-01-12 23:00:13
Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 SocketD 协议 - 消息应答模式 Solon rpc 之 SocketD 协议 - 消息订阅模式 Solon rpc 之 SocketD 协议 - RPC调用模式 Solon rpc 之 SocketD 协议 - 单链接双向RPC模式 Solon rpc 之 SocketD 协议 - 消息加密模式 Solon rpc 之 SocketD 协议 - 消息鉴权模式 Solon rpc 之 SocketD 协议 - RPC鉴权模式 SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。 本案在RPC调用模式的基础上增加签权为例演示: 接口定义 Rpc 模式借用了 Nami 做客户端定义(Nami 是 Solon 伴生框架,定位为 Rpc 通用客户端) @NamiClient("demo:/demoe/rpc") public

Solon rpc 之 SocketD 协议

主宰稳场 提交于 2021-01-12 13:11:02
Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 SocketD 协议 - 消息应答模式 Solon rpc 之 SocketD 协议 - 消息订阅模式 Solon rpc 之 SocketD 协议 - RPC调用模式 Solon rpc 之 SocketD 协议 - 单链接双向RPC模式 Solon rpc 之 SocketD 协议 - 消息加密模式 Solon rpc 之 SocketD 协议 - 消息鉴权模式 Solon rpc 之 SocketD 协议 - RPC鉴权模式 SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。 本案在消息上报模式的基础上增加签权为例演示: 服务端 //启动服务端 public class ServerApp { public static void main(String[] args) { //启动Solon容器(SocketD

Solon rpc 之 SocketD 协议

主宰稳场 提交于 2021-01-09 22:31:13
Solon rpc 之 SocketD 协议 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 SocketD 协议 - 消息应答模式 Solon rpc 之 SocketD 协议 - 消息订阅模式 SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。 本案以简单的消息上报模式为例演示:(就是你问我答) 包依赖 <dependency> <groupId>org.noear</groupId> <artifactId>solon.boot.socketd.smartsocket</artifactId> <version>1.2.18</version> </dependency> 服务端 //启动服务端 public class ServerApp { public static void main(String[] args) { //启动Solon容器(SocketD bean&plugin 由solon容器管理)

Solon rpc 之 SocketD 协议

久未见 提交于 2021-01-09 21:45:20
Solon rpc 之 SocketD 协议 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 SocketD 协议 - 消息应答模式 Solon rpc 之 SocketD 协议 - 消息订阅模式 SocketD 是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。旨在用于分布式应用程序中。从这个意义上讲,SocketD可以是RSocket等其他类似协议的替代方案。它的消息协议规范具有异步,背压的双向,多路复用,断线重连,基于消息等特性。暂时只提供Java实现,目前做为Solon rpc的sockte通道协议。 本案以简单的消息订阅模式为例演示:(即等着服务端给消息,例如配置服务的变更通知) 包依赖 <dependency> <groupId>org.noear</groupId> <artifactId>solon.boot.socketd.smartsocket</artifactId> <version>1.2.18</version> </dependency> 服务端 //启动服务端 public class ServerApp { public static void main(String[] args) { //启动Solon容器(SocketD bean

Springboot mini

风格不统一 提交于 2020-12-23 22:56:07
Solon 详解: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播 Solon详解(五)- Solon扩展机制之Solon Plugin Solon详解(六)- Solon的校验框架使用、定制与扩展 Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330 Solon详解(八)- Solon的缓存框架使用和定制 Solon详解(九)- 渲染控制之定制统一的接口输出 Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目? solon.extend.data 框加在完成 @Tran 注解的支持同时,还提供了 @Cache、@CachePut、@CacheRemove 注解的支持;可以为业务开发提供良好的便利性 Solon 的缓存注解只支持:Controller 、Service 、Dao 类下的方法。且借签了Weed3的简洁设计方案。 (一)示例 从Demo开始,先感受一把 @Controller public class CacheController { /** * 执行结果缓存10秒,并添加 test_${label} 和 test1 标签 * */ @Cache(tags = "test_$

关于一个简单接口的并发测试与优化记录

ε祈祈猫儿з 提交于 2020-08-16 17:44:33
目的 通过测试了解高并发的各处细节,寻找制约因素;为软硬架构设计提供优化参考。 前述 优化前,该接口在测试环境的qps为140左右 该接口的内部逻辑 处理前1:开始计时 处理前2:较验IP白名单 处理: 查询数据库并缓存 处理后1:结束计划,并提交日志(用于形成性能报告) 日志通过REST API,最终写入数据库 该接口特征: 内部处理简单 可优化点比较清楚 开始测试 使用一个nio或aio的通道框架测试helloworld 使用本机测试,qps约为:450万(我的电脑 macbook pro 4c 16g) 如果server端的服务线程,加个 System.out.println ;qps估计要降一半(亲自跑过) 使用solon.boot.jlhttp,测试helloworld(单机,单实例) 使用本机测试,qps 约为:5万(我的电脑 macbook pro 4c 16g) 使用域局网测试(192.168.8.118),qps给为:2万(2c 4g 虚拟机) 测试getAppByID(服务端为单机单实例;测试端为另一台机,走的是内网) 服务端测试机情况 上面有8个java服务;docker服务(memcached,redis,mysql); 初始测试 qps约为:140 去掉三个触发器 -不用缓存,qps约为:600 +memcached,qps约为:1万(memcached

Weed3 for java 新的微型ORM框架

这一生的挚爱 提交于 2020-05-08 19:02:57
Weed3,微型ORM框架(支持:java sql,xml sql,annotation sql;template sql;事务;缓存;监听;等...) 05年时开发了第一代; 08年时开发了第二代,那时候进入互联网公司,对性能有了全新的认识; 14年时开发了第三代,因为不喜欢滥用反射,不喜欢有很多配置,所以一直在执着的没放弃。 前两代,都是在.net开发的;第三代,重点放在了java上。应该算是个功能全面且小巧的ORM框架:0.1mb,无其它依赖。对外的接口也不多,主要由DbContext上的四个接口发起所有的操作。 因为一些执念写的东西都算是比较微型的: Snack3(Json框架 70kb,有序列化,有Jsonpath,有格式转换机制;强调构建能力) Solon(Web框架 80kb) 一个手机浏览器(0.1mb,可是有完整功能哦;算是一个创意作品) Weed3 特点和理念: 高性能:两年前有个同事测过四个ORM框架,它是性能最好的(不知道现在是不是)。 跨平台:可以嵌入到JVM脚本引擎(js, groovy, lua, python, ruby);也有.net,php版本。 很小巧:0.1Mb(且是功能完整,方案丰富;可极大简化数据库开发)。 有个性:不喜欢反射、不喜欢配置...(除了连接,不需要任何配置)。 其它的:支持缓存控制和跨数据库事务(算是分布式事务的一种吧)。