自研轻量级分布式实时计算框架light_drtc

框架地址

https://github.com/lrtdc/light_drtc

框架说明

Light_drtc是一个轻量级分布式实时计算框架,它可以帮助你快速实现自定义的实时计算平台。它主要参考当前流行的实时计算框架Storm的任务分发和Spark Streaming的Min-Batch处理思想设计,设计目的是为了降低当前大数据时代的分布式实时计算入门门槛,方便初中级学者上手,快速实现企业所需计算实时性要求比较高的业务逻辑。它本身可以做为独立的分布式实时计算平台存在,也可以作为其它项目的基础类库存在。

代码包结构

Light_drtc整个项目可以分为3部分:实时数据收集、任务管理和任务计算三部分,三者结合,共同完成完整的分布式实时计算系统。

---"src/main/java": 框架主体包

---"src/main/resources": 框架主体包所需配置文件

---"src/test/java": 框架测试包,也是框架三个核心部分作为一个整体,完成的一个分布式实时计算系统的实例说明。

---"src/test/resources": 框架测试包所需配置文件

使用说明

首先下载Light_drtc,进入根目录, 使用命令:mvn package,

打包成“light_drtc-${current_version}.jar”,引入即可。

Light_drtc只提供分布式实时计算的核心开发功能,其中实时日志解析、任务计算落地实现都需要开发者自行定义。以下3个部分为开发者的开发步骤,且为3个独立进程。

1. 数据流实时收集部分,每隔${mqDoBatchTimer}秒批量提交给任务管理节点,至于实时收集数据MQ需要学者自己开发,框架中也有RabbitMQ作为消费者的实用用例。
   具体开发,可以参考 src/test/java/org/light/ldrtc/test/MqCollect.java,首先继承org.light.rtc.base.MqConsumer.java, 然后对所接受的每条数据,代码中调用“this.mqTimer.parseMqText(userId, logText)”即可。

2. 任务管理部分:对于所接受的来自实时数据流的数据,每隔${rtcPeriodSeconds}秒,将所收集的数据,统一加工成每条信息类似: "{uid:设备ID或通行证ID,data:{view:{docIds},collect:{docIds}}}"形式的信息列表。
   具体开发可以参考src/test/java/org/light/ldrtc/test/AdminNodeServer.java, 这里需要开发者需要自行实现实时数据流的日志解析,需要实现“org.light.rtc.base.StreamLogParser.java”接口,具体参考实例src/test/java/org/light/ldrtc/parser/LogParser.java

3. 任务计算部分: 这部分主要依靠开发者自定义实现,实现时,需要实现“org.light.rtc.base.JobStatsWindow.java”相关接口,这里建议大家参考JDK本身提供的Fork/Join并行计算框架,以更高效率的利用服务器资源,开发实例入口参考“src/test/java/org/light/ldrtc/test/JobNodeServer.java”,具体实现参考“org.light.ldrtc.jober.JobService.java及StatsTask.java”。



转载于:https://my.oschina.net/taotao2011/blog/653886

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值