搜索处理语言引擎

我要开发同款
有bug不睡觉2021年03月21日
320阅读

作品详情

系统架构:springboot+antlr4+zmq+disruptor+arrow+gossip+jep+elasticsearch+tsdb
开发环境:idea+jdk+maven+git
项目描述:
为解决上层应用对数据存储系统的依赖,降低应用开发成本,故开发该搜索处理语言,用于快速实现应用功能开发,前端可直接对接搜索处理语言引擎,免去了后端的开发工作。后续的大数据应用的基本框架为:数据存储 + 数据计算。
责任描述:
独立完成需求分析、技术预研、架构选型、代码编写。
开发步骤:
1.使用anltr4对语法进行解析编译优化生成语法节点树,然后对树进行分组最终形成可执行的任务图。
2.将任务图解析为运行时的作业Job,任务图中的分组将被解析为TaskGroup任务分组;TaskGroup中包含一组可以执行任务Task;Task是最小的执行单位;Job中的TaskGroup可以分布式执行。
3.将TaskGroup构造成disruptor生产者消费者模型,语法中对接数据源部分为生产者,其余对数据处理的语法命令为消费者,消费者之间为串联关系;一个生产者或者消费者对应一个线程进行处理。
4.集成jep,实现搜索处理语言可执行python代码,来完成数据复杂的计算处理逻辑;可由python扩展语法命令逻辑,由搜索处理语言触发调用。
5.实现java注解方式扩展语法命令框架,通过@spl方式扩展,由引擎扫描注解并加载扩展命令。
6.使用gossip协议发现集群节点,改造apache gossip源码使其支持leader选举功能。
分布式任务实现,基于zmq的pull - push模式完成对任务图的分发,使用req - rep模式完成与TaskGroup之间的心跳通讯;也是用该模式完成数据传输。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论