Solon 也是 SSE(Server Send Events)后端开发的优选
Solon 2.3.6 在开发异步接口时,顺带也为 Solon Web 提供了 SSE (Server-Sent Events) 协议的支持插件:
<dependency> <groupId>org.noear</groupId> <artifactId>solon.web.sse</artifactId> </dependency>
如果不熟 SSE 的,可以通过搜索引擎查询了解下。//个人还是感觉 ws 更方便用:)
使用示例
按群里用户的要求,体验方式尽量采用大家熟悉的命名与风格。
@Controller public class SseDemoController { static Map<String, SseEmitter> emitterMap = new HashMap<>(); @Mapping("/sse/{id}") public SseEmitter sse(String id) { //3000L 是后端异步超时 return new SseEmitter(3000L) .onCompletion(() -> emitterMap.remove(id)) .onError(e -> e.printStackTrace()) .onInited(s -> emitterMap.put(id, s)); //在 onInited 里,可以发消息(初始化完成之前,是不能发消息的) } @Mapping("/sse/put/{id}") public String ssePut(String id) { SseEmitter emitter = emitterMap.get(id); if (emitter == null) { return "No user: " + id; } String msg = "test msg -> " + System.currentTimeMillis(); emitter.send(new SseEvent().id(Utils.guid()).data(msg).reconnectTime(1000L)); return "Ok"; } @Mapping("/sse/del/{id}") public String sseDel(String id) { SseEmitter emitter = emitterMap.get(id); if (emitter != null) { emitter.complete(); } return "Ok"; } }
注意事项
- 这个插件可能需要把线程数调大些
#服务 http 最小线程数(默认:0表示自动,支持固定值 2 或 内核倍数 x2) server.http.coreThreads: 0 #服务 http 最大线程数(默认:0表示自动,支持固定值 32 或 内核倍数 x32) server.http.maxThreads: 0
更多配置可参考:《应用常用配置说明》
- 关于超时的说明
超时是指服务端的异步超时,默认为 30000L(即30秒)。其中,0L 代表默认,-1L代表不超时。
- 提高连接数
要用好,后端超时、前端重连时间以及线程数配置。
Solon 是什么开源项目?
一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态)。与其他框架相比,它解决了两个重要的痛点:启动慢,费资源。
解决痛点?
由于Solon Bean容器的独特设计,不会因为扩展依赖变多而启动很慢(开发调试时,省时、爽快)!以知名开源项目“小诺”为例:
- “snowy-spring 版” 启动 30-50秒
- “snowy-solon 版” 启动3-5秒,内存省了1/3(有兴趣的,欢迎拉取代码体验)
所谓:“时间就是生命,效率就是金钱”,“天下武功,唯快不破”。
相对于 Spring Boot 和 Spring Cloud 的项目,有什么特点?
- 启动快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 运行时内存节省 1/3 ~ 1/2。 (更少)
- 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
- 同时支持 jdk8, jdk11, jdk17, jdk20, graalvm native
项目仓库地址?

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Fedora Workstation 39 计划默认使用 Anaconda WebUI 进行安装
Fedora Workstation 39 预计于今年晚些时候发布。该系统的一个重大变化是,它可能会默认使用 Anaconda WebUI 进行安装。 过去一年半,红帽工程师一直在为操作系统安装程序 Anaconda 开发新的 Web UI,并考虑在今年晚些时候发布的 Fedora Workstation 39 中默认使用它。 Anaconda WebUI 是一个基于 Web 的操作系统安装界面,旨在提供一个更现代、更灵活、更易于集成的安装体验。 Anaconda WebUI 将替代目前的 Anaconda GUI,后者是一个基于 GTK 的图形界面,已经存在了很多年。Anaconda WebUI 将允许用户通过浏览器或其他远程设备来控制安装过程,同时也可以在本地显示一个简单的界面。 Anaconda WebUI 还将提供一些新功能,例如支持多语言、自定义分区、加密、网络配置等。它还将与 Cockpit 项目协作,以便在服务器上进行安装和管理。 Fedora Workstation 39 计划默认使用 Anaconda WebUI 进行安装,但用户仍然可以选择使用 Anaconda G...
- 下一篇
拓数派受邀参加由Google举办的“深度探索 LLM / Generative AI的生态与应用”主题活动
大语言模型(LLM)可谓是当下国内科创界最热门的话题。 近日,拓数派创始人兼CEO冯雷(Ray Von)受邀参加由Google举办的“深度探索 LLM / Generative AI的生态与应用”主题活动,与现场嘉宾共话科技行业发展新趋势。 图为:活动现场照片 在圆桌讨论环节中,冯雷与主持人及几位创业公司高管,进行了一场关于大模型与生成式AI的深度对话与探讨。冯雷从虚拟数仓、多模数据和数据网络等几方面,分享了其本人在数据计算领域的实践经验与对大模型发展的见解。 图为:圆桌讨论照片 在讨论中冯雷提到,ChatGPT为代表的通用大模型使得数据计算(Data Computing)迅速浮出水面,拓数派作为数据计算理念的提出者,自成立第一天就将使命定义为「数据计算,只为新发现」(Data Computing for New Discoveries),并围绕「数据」、「模型」与「计算」三个维度进行深度探索。现阶段我们已实现了在数据计算领域的第一步颠覆性技术突破,利用云原生下eMPP计算引擎全面实现数仓虚拟化,可将物理数仓整合到跨云数据计算平台,实现云上存储资源和计算资源的分开调度,根据数据授权动态...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启