- 博客(31)
- 收藏
- 关注
原创 Solon 集成 Flowable
主要的问题,集成的是 6.5.0的 Flowable,不支持高版本的 MySQL 驱动。在统一看了相关的代码之后,主要的适配工作,就是根据配置设置ProcessEngineConfiguration, 并创建 ProcessEngine 及相关的 Service 的 bean 对象。
2025-05-15 10:40:49
688
原创 Solon Cloud Gateway 补充
后续 Solon Cloud Gateway 继续更新文档之后才发现,虽然网关是响应式了,但如果逻辑涉及 IO 或者比较慢的操作,需要在 ExFilter 中开启异步接口,这样才是真正的异步,从而避免对网关的事件循环器造成影响,减少对响应式的性能的伤害。这个 doFilter 的过程中需要自己先处理 ctx.pause,然后开启异步,并在开启的过程中判断是否异常的提交等等,需要写好这个 ExFitler 的扩展还是有点不容易的。如果已经处理完毕,不需要继续执行返回 ture,否则返回 false。
2025-04-30 22:25:05
718
原创 加餐 —— 扩展 easy-query
基于 Map 的 Model Bean,或者 ActiveRecord 的一个好处就是对查询结果的动态扩展或者裁剪,当然这都是要配合 Jfinal 自己的 JSON 序列化,否则动态增加的字段是不会被处理的,另外就是 Jfinal 还提供了 keep 和 remove 等方法可以对数据进行裁剪。通过以上的扩展,easy-query 已经可以使用 ActiveRecord Model 的功能,可以用 SQL 模版的方式管理 SQL,并增强了ActiveRecord 的 SQL 能力,支持租户字段的过滤。
2025-03-31 13:09:43
1114
原创 Mac 上开发 Ragflow
因为增加了 ragflow 的卷映射,这里注意拷贝 docker/service_conf.yaml.template 到 ragflow/conf 目录下,docker/entrypoint.sh docker/entrypoint-parser.sh 拷贝到 raflow 目录下,避免程序无法启动。」的文章中只是简单的说到可以通过 Remote Development 来进入容器,可以通过修改Dockerfile的方式,增加映射卷的方式来开发。我今天完整的走通了开发的过程,重新整理开发部分的文档。
2025-03-18 17:15:28
1392
原创 Mac 上编译 Ragflow
一开始尝试按源码启动的方式(https://ragflow.io/docs/dev/launch_ragflow_from_source),直接运行 Ragflow,但是在安装 Python 依赖的时候就报错了。ragflow 提供的 docker compose 使用的是 ragflow 的对应的网桥就是 docker_ragflow,也可以通过如下命令查看。会下载一些基础依赖和模型,可以根据自己的实际情况调整模型的下载,比如是否下载模型,模型的下载地址等(未经完全验证是否可以屏蔽模型)。
2025-03-15 14:26:07
1260
1
原创 加餐 —— Spring Boot 项目转 Solon 项目工具
公司里面原来的项目都是 Spring Boot 和 Spring Cloud 框架的,自己手动迁移完一个项目后,发现迁移的过程有些还是能代码化的东西,于是整理了 SpringConverter 这个工具。这个工具不是说你转换完就能无痛的启动,你还是需要手动处理一些错误。虽然工具内置了一部分的 Spring 与 Solon 的对照关系,但你仍然可能需要修改这个工具的代码,配置遗漏的对照关系,以便能将自己的项目进行迁移。在手动替换的过程中,会首先创建新项目,然后把旧代码复制到新项目中,之后对相关的包和类进行替换
2025-03-08 11:03:27
969
原创 Solon AI —— RAG
RAG (Retrieval-Augmented Generation 检索增强生成)是一种结合了信息检索和大模型生成的技术框架,是通过相似度等算法从外部知识库中检索相关的信息,并将其作为 Prompt 输入大模型,以增强大模型处理知识密集型任务的能力。这里我们继续使用 demo-ai02 中诊断的例子,尝试模拟一次简单的诊断,相对于demo-ai02,增加了获取病人的历史病人和病人自述相关的知识,用于演示知识库增加的例子。在实际的应用是可以多种方式结合的,只要能检索到尽可能相关的数据即可。
2025-03-05 22:53:39
1453
原创 Solon AI —— 流程编排
Solon 的流程编排,使用了 solon-flow 做流程编排,因此需要先对 solon-flow 有所了解,下面是 Solon flow的一些简单介绍,更具体的介绍可以参考官网 https://solon.noear.org/article/learn-solon-flow。这里只是为了 solon-flow 针对 ai 相关的编排的逻辑。这里的 flow 是演示基础的 solon flow 的调用,是我学习solon flow 时编写的一个简单例子,不熟悉的可以先看看这个示例的编写。
2025-03-03 21:10:38
934
原创 Solon Cloud —— 熔断与限流
从测试使用的情况来看,Solon 目前只支持本地的限流处理,暂时不支持熔断,对 sentinel 的支持还不够完善,无法注册到 sentinel 的 dashboard 中。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。限流的指标有TPS, HPS、QPS等,限流的方法有流量计数器,滑动时间窗口,漏桶算法,令牌桶算法等。当超过限流时,提示错误。
2025-03-02 08:49:31
575
原创 Solon AI —— 初体验
从官网的介绍中(https://solon.noear.org/article/learn-solon-ai),可以看到Solon AI 对大模型的支持是比较完整的,聊天模型接口支持同步调用,流式调用,Function Call,记忆功能,多种消息角色和多种消息格式,提供 RAG 支持和流程编排。这里我只测试了 Solon AI 的基础功能,可以说是非常容易上手,通过简单的配置就能调用本地的服务了,如果是云服务也是一样的,增加配置 apiKey 就可以了。经过大模型的处理,内容就更完整丰富了。
2025-03-01 10:10:57
1435
1
原创 Solon Cloud —— 服务网关
Solon Cloud Gateway 是 一个可 Java 编程的分布式网关,提供了服务路由的能力和各种拦截的支持,只要是 http 服务(不需要关心实现的语言)都可以通过 Solon Cloud Gateway 进行代理转发,代理转发的服务也不一定要注册到服务注册中心。Solon Cloud Gateway 通过配置的方式就可以对服务进行代理转发,在实际的业务使用中通常会与服务发现一起,实现负载均衡,也可以通过编程的方式进一步的定制自己的业务逻辑,实现统一鉴权,限流熔断,灰度发布等功能。
2025-02-24 22:53:03
1178
原创 Solon Cloud —— 服务注册与发现
通过简单的配置,我们就可以把服务注册的 Nacos 中,并可以通过服务名的方式调用其他服务。当我们在普通的服务中增加服务配置和服务注册与发现功能配置后,就可以算作系统中的一个分布式微服务了,可以关注于业务的开发了。Solon 的 NamiClient 或者 HttpUtils 可以通过服务名来调用服务,其中NamiClient可以通过类似FeignClient的注解的方式进行使用。服务注册与发现是一种动态管理服务实例的机制,其目的是让各个服务能够及时了解其他服务的状态与位置,以便能进行相互的通讯与协作。
2025-02-23 14:42:31
728
原创 Solon Cloud —— 服务配置
在实际的使用过程中注意区分@Inject 和@CloudConfig 的不同,一个是针对key来的,一个是针对dataId来的。为了减少自己在开发过程中的混乱(有时过多的选择不是一件好事情),可以约定使用 load 的方式加载多个配置文件,使用 @Inject 的方式进行注入后使用。以下是一份更详细的配置,内容来自官网 https://solon.noear.org/article/400 ,可以根据实际的需要进行配置。使用 nacos 的配置是期望获取统一的,动态的配置,所以这里开启自动刷新。
2025-02-22 11:31:17
682
原创 Solon Cloud —— 介绍
为了解决微服务(或者系统)的开发、部署、运维的复杂性,CNCF (Cloud Native Computing Foudation)提出了云原生的概念,就是利用各组织在共有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。在 Solon 的官网中也对分布式设计做了引导,我这里列出重点的部分,详细内容可查看官网 https://solon.noear.org/article/638。微服务有支持异构,弹性,易扩展,容易替换等优点,但也增加了开发、测试、部署、运维的复杂性。
2025-02-21 22:05:43
573
原创 Solon —— 插件
这三种扩展方式对于开发插件本身没有什么区别,主要的区别是主应用的依赖和配置等,和实现的效果的不同,具体的特性对比可以参看官网 https://solon.noear.org/article/441 相关的文章。热插拔的就是允许应用可以更灵活的管理插件的生命周期,因为热插拔是完全隔离的,因此需要自己更严格的管理资源的,更独立,避免与别的组件交互,避免不可拔的情况。这里使用 Solon 默认提供的配置来管理,在加载的插件的过程中,只要能找到插件就可以了,不一定需要使用这个配置,注意路径是绝对路径。
2025-02-20 20:20:15
918
原创 Solon —— 容器
在使用 IoC 的过程中,我们是通过容器来创建和管理对象的,我们也是从容器中获取对象,所以,有时我们会听到 IoC 就是容器的说法,可能只是简化的一种说法。其中涉及的核心有代理,切点,切面。在 Solon 中,我们通过Singleton,Configuration,Bean,Component,Controller,Remoting等方式产生Bean,在Bean 对象中,我们可以 @Inject 注解注入字段。在 Solon 中,我们可以自由的选择用注解的方式,还是手动的方式来实现想要的功能。
2025-02-19 22:53:39
1236
原创 Solon —— 配置
Spring Boot 流行起来的一个原因是简化了配置,其中约定优于配置减少了开发者的配置负担,无需配置或者少量的配置就可以启动项目;配置本身相关简单,记住对应的配置加载规则和注入的方法,基本不会有什么太多的问题。在理解了 Solon 的配置后,就可以更动态的做部署的配置。配置文件(或配置块)解析时,Solon.cfg() 已经存在的变量(或者配置块内的变量),可以被引用。因为配置是以“键”为单位,且后面加载的会盖掉前面加载的,所以最终效果就是配置以最后加载为准。应用通过配置文件加载进来的配置。
2025-02-18 20:06:39
835
原创 Web 开发 —— 高阶 WebSocket 和 SSE
随着大语言模型的流行,因为使用了 SSE 或者 Websocket的技术进行流式的交换,使得 SSE 和 Websocket也火了起来,今天我们来讲解,如何在 Solon 中实现 Websocket 服务端和 SSE 服务端。与 Websocket 不同的是,SSE 是单向连接,请求的过程是不带会话连接的,所以需要自己管理好会话。此处只是做简单的鉴权,和消息的回复,如果要实现完整的 IM 服务,还需要做会话的管理的逻辑。我们这里通过一个简易的 im 的服务做为例子。在主类开启 Websocket。
2025-02-16 10:21:16
1541
原创 Web 开发 —— 高阶 本地网关
在 Web 进阶中,我们讲解了如何定制过滤器和拦截器,提到 Action 本质上是 Handler 和 Class Method 的结合通过,今天我们要讲解一种特殊的Handler —— Gateway(本地网关),通过本地网关更统一的定制系统功能,比如二级路由、拦截、过滤、熔断、异常处理等,虽然直接使用过滤器,也可以做统一的鉴权和异常处理,但网关还可以把一批接口编排进多个网关中,从而实现不同的协议。路由注册,添加 adminApi 标签的过滤器,添加 adminApi 标签的请求方法。
2025-02-15 20:38:50
1268
原创 Web 开发 —— 进阶 事务和缓存
官网也提供了事务的监听器,可能针对性的对事务的事件做些附加的处理。有了事务和缓存的支持,数据的可靠性和应用的性能可以进一步得到保障,通过以上内容的学习,基本上可以起飞,做业务开发了。在数据操作的章节中,我们只是讲解了对关系数据库和非关系数据库的简单的数据操作,在实际的业务当中,操作会更加复杂,因此不可避免的会涉及到数据库的事务和数据的缓存。Solon 通过 solon-data 插件提供缓存的基础框架,然后通过不同的缓存插件实现具体的缓存逻辑,使得应用层可以快速的切换缓存的存储或者实现多级缓存。
2025-02-14 22:57:45
1409
原创 Web 开发 —— 进阶
在 Context 中可以获取请求和响应相关的数据,包括请求相关的对象与接口,会话相关的对象与接口,响应相关的对象与接口等。函数,可以通过 Controller 的方式定义,也可以通过 Handler 的方式定义,等等)。通常用于全局的 Web 请求异常处理,全局的性能记录,全局的响应状态调整,全局的上下文日志记录,全局的链路跟踪等等,当然也可以作用在局部上。本章节通过示意图的方式简单描述Solon web的请求过程,并对其中的重要概念做了讲解,通过实例的方式正式了对过滤器,路由拦截器和拦截器的定制。
2025-02-13 20:04:35
1064
原创 Web 开发 —— 基础
在service中通常不采用接口实现的分离方式(虽然这种方式更好,但在编写、查看代码的过程中跳转太多,而且对应业务来说,通常不会有多种实现,有多种实现的逻辑再进行接口实现分离的方式);在 Solon 3.0.7 版本测试的时候发现上述 controller 的路由定义,可能存在 index 接口无法访问,而路由到的 get 接口的情况,但 3.1.0-SNAPSHOT已经修复这个问题,当前代码实用了 Solon 3.1.0-SNAPSHOT,后续 3.1.0 发布时,教程也会统一更新版本号。
2025-02-11 20:52:22
1041
原创 数据操作 —— 操作 NoSQL
Solon 通过简单的配置就可以操作 Redis 和 ElasticSearch ,对 NoSql 的支持还是挺完整的,更多的对数据的操作需要看具体的类库提供的接口。验证有很多种方式,这里通过 swagger 文档进行调用。验证有很多种方式,这里通过 swagger 文档进行调用。完整代码可以从 https://gitee.com/CrazyAirhead/porpoise-demo 获取。可以创建新的模块 demo-nosql,基础代码和配置可以从demo01中拷贝过来,或者自己手动创建。
2025-02-10 20:15:53
600
原创 数据操作 —— 操作 SQL
Solon 不像 Jfinal 提供了基础的数据库能力,是通过集成第三方的 ORM 来实现的,当然 Solon 家也有自己的 ORM(wood)。Solon 第三方的 orm 插件非常的多,如果不喜欢使用 easy-query,也可以选择其他 orm 框架进行尝试。easy-query 提供了插件可以生成 model,通过IDEA 的database 连接数据库,选择表,右键选择TableEntityGenerate,填写对应的信息,点击 ok。如果没有使用插件,自己创建实体类即可。在 IDEA 中通过。
2025-02-09 20:27:29
650
原创 初识 Solon —— 进一步的准备
先创建一个demo01的模块,然后把第一应用的文件移动到 demo01中(第一个应用的玩转例子保留在 start-up 的分支)。多模块的配置,可以参看 https://mp.weixin.qq.com/s/qXaZ7BCL_0-1hkqTGNxFmA。具体参看其官方文档,https://docs.soybeanjs.cn/zh/guide/quick-start。将项目调整为多模块结构,增加父BOM,并测试 demo01 可以正常运行,为后续项目的开发做好准备。补充说明写在注释中。补充说明写在注释中。
2025-02-08 22:18:59
570
原创 初识 Solon —— 第一个应用
也可以使用 IDEA 的 Solon 插件,https://plugins.jetbrains.com/plugin/21380-solon,功能类似,用其中一种方式就可以了。Solon 作者针对的提供了多个性能的测试对比,具体看链接 https://solon.noear.org/article/737 的文章。这里选择Gradle-Groovey,Java, 3.0.6,jar,jdk17,Solon Web。如果提示不存在任何测试的错误,调整 IDEA 的配置。默认生成的代码可以从下面的分支获取。
2025-02-07 20:24:15
619
原创 初识 Solon —— Solon 体系
在这些方面 Solon 都是有完整支持的,跟进 Solon 也能保持自己在技术方面的更新迭代。这里只是简单的罗列。Solon Native 是可以让 Solon 应用程序以 GraalVM 原生镜像的方式运行的技术方案。Solon 数据处理,包括事务、缓存、Orm 框架、NoSQL相关的插件。Solon Web 一个虚拟的项目,是相关依赖项目的组合。Solon 安全,鉴权、校验、加密等安全相关的插件。Solon 流程引擎、规则引擎 等相关的插件。Solon 任务调度相关的插件。Solon 日志相关的插件。
2025-02-07 20:21:18
792
原创 Solon 实用教程 —— 介绍
Solon 一个是新的Java “生态型”应用开发框架。相对目前主流解决方案。Solon并发高 2~ 3 倍;内存省 50%;启动快 5 ~ 10 倍;打包小 50% ~ 90%;同时兼容 java8 ~ java22 运行时。
2025-02-07 20:19:13
876
原创 基于 gnet 实现的 syslog 服务
syslog是一种被广泛使用的用于日志记录的标准。许多设备(如打印机、路由器)以及跨平台的系统都使用syslog标准。它可以将生成日志的软件、存储日志的系统以及分析日志的应用分离开来。这使得来自不同类型系统的日志数据可以集中存储和分析。syslog可以用于系统管理和安全审计,以及记录一般信息、分析和调试消息等。
2025-01-18 21:28:36
824
原创 使用 Solon Cloud Gateway 替换 Spring Gateway
在「使用国产化框架 Solon 的一些开发经验」中提到,我们只是在平台的一个应用开始使用 Solon 框架,并非一次性的完全替换。另外系统中个问卷功能是对外提供服务的,当时为了提供对外服务和减少Gateway的路由判断逻辑,增加一个api-gateway。此次使用 solon gateway 进行替换需要完整的实现旧有Spring Gateway的功能,同时想利用 solon 的本地 gateway 的路由分组功能合并api-gateway。// admin的异常抛出,可能包含SQL,起码更详细。
2025-01-10 16:14:15
826
原创 使用国产化框架 Solon 的一些开发经验
公司的数字安全运营平台是基于 Spring Boot 和 Spring Cloud 进行构建的。考虑到公司有企事业单位的客户,陆续对产品提国产信创的要求。虽然当前信创可能只要求硬件,操作系统和数据库是国产化即可,但底层框架也是国产化的,可以给客户提供更多的国产化保证。Solon 就是这样的一个选择,Solon 的官网介绍说,Solon 是 Java 「新式」应用开发框架,从零开始构建,有自主的标准规范与开放生态。追求更快、更小、更简单;提倡克制、简洁、高效、开放、生态;
2025-01-10 16:12:56
940
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人