您当前的位置:首页 > 电脑百科 > 程序开发 > 开源程序 > 百科

开源SPL 令微服务真地”微“起来

时间:2022-08-01 15:06:17  来源:  作者:微服务布道者

随着微服务的流行,越来越多应用采用微服务架构开发。如何简单高效地在微服务中完成数据处理成为大家不得不面对的问题。以往单体应用架构下,我们可以借助数据库实施计算,SQL 是专用的集合计算语言,依托数据库较强的计算能力可以比较方便地完成数据处理。但在微服务架构下,为了方便服务扩展和服务封装,数据库则主要承担数据持久化任务,数据处理都在应用(服务)端完成。

服务端完成数据处理的主要手段是采用 JAVA 硬编码(也有其他高级语言,Java 使用更多)。由于应用使用 Java 开发,原生的 Java 代码可以无缝融合到微服务中,加上 Java 支持过程可以分多步实施计算,而且在 Java8 以后引入了 Stream 特性后计算又方便不少。

不过,使用 Java 进行数据处理距离 SQL 还有很大差距,同样的分组汇总 SQL 实现很简单,但 Java 却要几十行代码,复杂计算二者的差距更明显。根本原因是由于 Java 并非专用的集合运算语言,也缺少相应的结构化数据计算类库,导致代码很长,微服务一点也不“微”。并且,Java 作为编译型语言,很难直接实现热切换,被迫使用 Docker 等沉重的机制,这对于频繁变动的微服务来说十分不友好。鱼与熊掌,要拥抱微服务就得忍受 Java 做数据处理的缺点。

一个理想的微服务数据处理组件应该具备这样一些特点:

易于与微服务融合,可以无缝嵌入使用;计算能力强且实现简单,可以方便地完成所有数据处理任务;支持热切换(热部署),服务不停机运维;体系开放,可以直接使用多种数据源。

开源集算器 SPL 的出现使得这些问题迎刃而解。

集算器 SPL 是一款开源数据处理引擎,不仅能与 Java 应用(微服务框架)无缝集成,还提供了完备的计算能力,基于 SPL 语法实施计算的简便性远超 Java(甚至 SQL),同时提供了热切换与多源支持等特性,为微服务数据处理提供了新思路。

高开发效率

SPL 作为专业结构化数据处理引擎提供了完备的计算能力。使得微服务中的任意结构化数据处理工作都可以通过 SPL 实现。

SPL 不仅可以完成所有结构化数据计算,实现上也很简单。SPL 提供的敏捷语法实施计算的简便性远超 Java。下面的例子可以感受到 SPL 的简洁程度。

根据股票记录表查询股价连续上涨超过 5 天的股票及上涨天数(股价相等记为上涨)

  A  
1 =db.query@x("select * from stock_record order by ddate")  
2 =A1.group(code)  
3 =A2.new(code,~.group@i(price<price[-1]).max(~.len())-1:maxrisedays) 计算每只股票的连续上涨天数
4 =A3.select(maxrisedays>=5) 选出符合条件的记录

从数据库取数后,通过 SPL 实施计算,这个例子即使使用 SQL 也要嵌套 3 层子查询才能实现,更不用说 Java(Stream,也包括 Kotlin)了。SPL 支持分步计算,这方面要优于 SQL。从语法特点上看,SPL 相当于结合了 Java 和 SQL 的优点。

SPL 提供了丰富的计算类库,更进一步简化运算。

SPL 支持多样数据源混合计算。RDB、NoSQL、CSV、Excel、HDFS、Restful/Webservice、Kafka…都可以连接,并进行异构源混合计算,可以极大满足微服务场景下面临的多样源问题,进一步提升开发效率。

在 SPL 的支持下,服务逻辑的实现代码都能短小很多。这就让微服务不仅在结构上,而且在实现上真地“微”起来了。

微服务无缝融合

SPL 使用 Java 开发,支持 jar 包嵌入。微服务应用可以将 SPL 引擎以 jar 包形式引入与应用无缝集成。SPL 还封装了标准 JDBC 接口,可以在服务中通过 JDBC 调用 SPL 脚本。

具体使用时只需要引入相关 jar 并部署配置文件(raqsoftConfig.xml),通过简短的代码就可以调用 SPL 脚本。

热切换与低资源消耗

SPL 是解释执行的,天然支持热切换。可以适应微服务架构下多变的服务修改需求,服务修改不需要重启即时生效。

数据处理逻辑位于 SPL 文件(.splx)中,修改后实时生效,相对 Java 等编译型语言需要重启服务有很大优势。

借助 SPL 的热切换特性可以帮助微服务降低资源消耗。以往通过 Java 实现数据处理的微服务为了能够单独运维常常要独立部署(VM/Docker 上),这样做的好处是在物理上隔离了服务与服务,但缺点是 docker 会消耗更多的资源,导致资源利用率很低。SPL 具备单独运维(热切换)特性,这样多个服务共处一处仍然可以单独修改维护,提高资源使用效率。当然,有时为了避免服务间相互影响(如高可用)还需要单独部署,这时 SPL 也无法降低资源消耗了。SPL 为微服务提供了更多选项,让微服务在体系结构和资源消耗上也更“微”。

高性能

SPL 除了可以与微服务结合使用,还可以作为独立的计算服务器运行。微服务内 SPL 脚本调用 SPL 计算服务器实现高性能计算。

SPL 服务器支持分布式计算可以部署集群进行横向扩展,支持负载均衡和容错。同时 SPL 还提供诸多高性能算法进一步保证计算性能。

借助 SPL 易集成、热切换、高效开发与高性能等特性可以帮助微服务快速、高效地实现数据处理,同时还能为应用结构提供一些便利,有效助力微服务开发,让微服务全面“微”化。



Tags:开源   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
重磅!Meta推出开源大模型Llama 3,性能直逼GPT-4
每经编辑:杜宇当地时间4月18日,AI 领域迎来重磅消息,Meta正式发布了人们等待已久的开源大模型Llama 3。与此同时,Meta首席执行官扎克伯格宣布:基于最新的Llama 3模型,Meta的AI助手...【详细内容】
2024-04-19  Search: 开源  点击:(4)  评论:(0)  加入收藏
开源不开源?抢没抢饭碗?李彦宏内部讲话曝光!
4月11日,百度创始人、董事长兼首席执行官李彦宏在公司内部讲话中谈及大模型开源与闭源的路线选择等大模型行业热门话题。李彦宏称,“闭源模型在能力上会持续领先,而不是一时领...【详细内容】
2024-04-12  Search: 开源  点击:(7)  评论:(0)  加入收藏
李彦宏最新内部讲话:开源大模型不如闭源,后者会持续领先
界面新闻记者 | 李如嘉界面新闻编辑 | 宋佳楠4月11日,界面新闻获悉,百度创始人、董事长兼首席执行官李彦宏在一场内部讲话中首次谈及文心大模型为何不开源,以及对于大模型开源...【详细内容】
2024-04-12  Search: 开源  点击:(9)  评论:(0)  加入收藏
Redis 不再 “开源”,未来采用 SSPLv1 和 RSALv2 许可证
Redis 官方于21日宣布修改开源协议 &mdash;&mdash; 未来所有版本都将使用 “源代码可用” 的许可证 (source-available licenses)。具体来说,Redis 将不再遵循 BSD 3-Clause...【详细内容】
2024-03-27  Search: 开源  点击:(25)  评论:(0)  加入收藏
Redis“叛逃”开源,得罪了几乎所有人
内存数据库供应商Redis近日在开源界砸下了一块“巨石”。Redis即将转向双许可模式,并实施更为严格的许可条款。官方对此次变更的公告直截了当:从Redis 7.4版本开始,Redis将在Re...【详细内容】
2024-03-25  Search: 开源  点击:(13)  评论:(0)  加入收藏
八个 C++ 开源项目,帮助初学者进阶成长
通过参与或阅读开源项目的源代码,你可以获得丰富的实践机会。实际的项目代码比简单的教程更具挑战性,可以帮助你深入理解 C++ 的各种概念和技术。1.ThreadPool一个简单的 C++1...【详细内容】
2024-03-22  Search: 开源  点击:(27)  评论:(0)  加入收藏
Redis不再 “开源”
Redis 官方今日宣布修改开源协议 &mdash;&mdash; 未来所有版本都将使用 “源代码可用” 的许可证 (source-available licenses)。具体来说,Redis 将不再遵循 BSD 3-Clause 开...【详细内容】
2024-03-21  Search: 开源  点击:(15)  评论:(0)  加入收藏
C# 中15个值得收藏的开源项目推荐
在开源的世界里,C# 编程语言也占有一席之地。这些开源项目涵盖了多个领域,从框架、库到工具,它们为C#开发者提供了丰富的资源和工具,帮助他们更高效地开发、测试和部署应用程序...【详细内容】
2024-03-20  Search: 开源  点击:(33)  评论:(0)  加入收藏
真“Open ” AI?马斯克旗下大模型Grok宣布开源:参数量全球最大
xAI成了更“open”的AI。当地时间3月17日,特斯拉CEO埃隆&middot;马斯克旗下的人工智能初创公司xAI正式宣布开源大模型Grok-1,遵循Apache 2.0协议开放模型权重和架构。官网显示...【详细内容】
2024-03-18  Search: 开源  点击:(38)  评论:(0)  加入收藏
马斯克旗下人工智能大模型Grok已正式开源
鞭牛士报道,3月18日消息,据外电报道,埃隆&middot;马斯克 (Elon Musk) 的人工智能初创公司 xAI 迈出了重大一步,开源了其大型语言模型 (LLM) Grok。这意味着企业家、程序员、公司...【详细内容】
2024-03-18  Search: 开源  点击:(21)  评论:(0)  加入收藏
▌简易百科推荐
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 &mdash;&mdash;star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  OSC开源社区    Tags:GitHub   点击:(32)  评论:(0)  加入收藏
一文读懂 AutoGPT 开源 AI Agents
Hello folks,我是 Luga,今天我们继续来聊一下人工智能(AI)生态领域相关的技术 - AutoGPT AI Agents ,本文将聚焦在针对不同类型的 AutoGPT 技术进行解析,使得大家能够了解不同 A...【详细内容】
2023-11-27  架构驿站  微信公众号  Tags:AI Agents   点击:(259)  评论:(0)  加入收藏
了解一下开源许可协议
开源许可协议开源许可协议是指允许软件源代码公开、免费获取、使用、修改和分发的许可协议。开源许可协议的目的是促进软件的自由共享和协作,使得开发者可以共同改进和创造新...【详细内容】
2023-11-18  沐雨花飞蝶  微信公众号  Tags:开源   点击:(217)  评论:(0)  加入收藏
七个很实用的开源项目,我们一起学学吧!
本周特推的两个项目都是异常实用的项目,一个接棒上周的视频重制项目 video-retalking 这次则是直接将视频替换成另外一个语种;另外一个则是解决日志阅读问题的 tailspin,让你在...【详细内容】
2023-11-06  HelloGitHub  微信公众号  Tags:开源   点击:(388)  评论:(0)  加入收藏
八个适合程序员接私活赚钱的开源项目
智慧团购一套基于Spring Cloud和Vue.js的社区团购配送系统,经过真实的用户检验且完善的社区团购配送系统,社区团购配送系统包含管理台、集团总店(商家PC端)、城市合伙人、区域...【详细内容】
2023-10-13  前端充电宝  微信公众号  Tags:开源项目   点击:(276)  评论:(0)  加入收藏
八个优秀开源DevOps工具
DevOps(Development和Operations)是一组软件工程过程最佳实践,并非工具,旨在将制造世界的精益概念应用于软件世界。维基百科给出的定义是:“DevOps是一种重视软件开发人员(Dev)和IT...【详细内容】
2023-10-10  andflow  微信公众号  Tags:DevOps   点击:(291)  评论:(0)  加入收藏
开源存在风险的根本原因
漏洞仍然是可以预防的几乎所有(96%)的漏洞仍然是可以避免的。2023年本可以避免21亿次具有已知漏洞的OSS下载,因为有了更好的修复版本&mdash;&mdash;与2022年的百分比完全相同...【详细内容】
2023-10-09     企业网D1Net  Tags:开源   点击:(301)  评论:(0)  加入收藏
中国14岁初中生,开源Windows 12网页版,star数近2k
出品 | OSC开源社区(ID:oschina2013)前几天在网上冲浪,发现名为「Windows 12 网页版」的开源项目&mdash;&mdash;在网页端实现了Windows 12 的交互和 UI。项目亮点: 精美的 UI 设...【详细内容】
2023-09-07    OSC开源社区  Tags:开源   点击:(251)  评论:(0)  加入收藏
苹果开源FastViT:快速卷积Transformer的混合视觉架构
苹果此前在论文《FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization》中提出的 FastViT 架构已正式开源。论文地址:https://arxiv.org/pdf/23...【详细内容】
2023-08-16  OSC开源社区    Tags:FastViT   点击:(325)  评论:(0)  加入收藏
金融机构使用开源软件,有哪些潜在风险?
面对新技术,无法逃避,只有先行和后行,没有不执行。本文来自社区文章《论述金融机构使用开源软件的潜在风险》及对该文的评论交流,由社区同行分享,也欢迎大家参与探讨。@朱向东 中...【详细内容】
2023-08-14    IT168企业级  Tags:开源软件   点击:(284)  评论:(0)  加入收藏
站内最新
站内热门
站内头条