Light_rtdc 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Light_rtdc 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Light_rtdc 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 taotao2011
适用人群 未知
收录时间 2016-04-07

软件简介

框架说明

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

代码包结构

Light_drtc采用Java8开发,整个项目可以分为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和Kafka两种实现,如果开发者要使用其它的,则自行开发。框架中也有RabbitMQ作为消费者的实用用例。
   具体开发时,如果学者选用Kafka或RabbitMq,则可以直接使用框架中已实现"org.light.rtc.mq.KafkaMqCollect.java"或"RabbiMqCollect.java",直接实例化,调用相关方法即可。
     实例可以参考:src/test/java/org/light/rtc/test/KafkaRabbitMqCollect.java
   具体开发时,如果选用其他MQ,可以参考“org.light.rtc.mq.KafkaMqCollect.java”实现,继承org.light.rtc.base.MqConsumer.java, 对所接受的每条数据,代码中调用“this.mqTimer.parseMqText(userId, logText)”即可。 
     实例可以参考:src/test/java/org/light/rtc/test/MqCollect.java

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”。

框架配置文件说明

需要在实际中根据实际需要修改,这里需要说明的是,框架本身负责计算任务管理及资源协调。这里重点说明几个配置属性。 rtc_conf.properties

mqDoBatchTimer=3 #实时收集的数据流每隔3秒批量提交给任务管理节点
rtcPeriodSeconds=7 #任务管理节点中每隔7秒将所收集的数据统分发给任务计算节点
atomJobBatchNum=100  #默认每个任务计算节点在${rtcPeriodSeconds}秒内所处理的最大元数据条数(比如单个用户规定时间内的所有行为聚合的数据)
minJobBatchNum = 20  #默认每个任务计算节点在${rtcPeriodSeconds}秒内所处理的最小元数据条数
adminNodeHosts = 127.0.0.1:16401,127.0.0.1:16406  #给数据收集节点使用,这里规定使用2个任务管理节点,双主模式。
adminNodePort = 16401   #任务管理节点启动服务所在端口,可以根据需要修改。同台服务器,2个任务管理节点服务端口必须区分
adminNodeId=1       #后期功能扩展使用,任务管理节点每个都会扩展一个热备,主:1,从:0
minThreadNum=10      #服务端进程,最小线程数
maxThreadNum=10000   #服务端进程,最大线程数
jobNodeHosts=127.0.0.1:1641,127.0.0.1:1642,127.0.0.1:1643  #任务计算节点配置,供任务管理节点管理,作者建议每个任务管理节点至少包含3个任务计算节点实例
jobNodePort=16401   #任务计算节点启动服务所在端口,可以根据需要调整。
delayTaskDir = /Users/a/delayTask/   #任务计算节点不能及时处理的延迟的聚合后的用户行为数据,按时间片段命名写入指定目录,根据需要自定义
delayTaskFileSurfix = .txt      #延迟执行的元数据文件后缀命名
maxDelayTaskNum = 6         #任务管理节点默认只能接受的未及时执行的元数据组的个数,超过此限制,每个元数据组一个文件写入指定目录
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Apache Thrift 信任管理问题漏洞
证书验证不恰当
Apache Thrift是美国阿帕奇(Apache)基金会的一个用于跨平台开发的框架。 Apache Thrift Java client library 0.5.0版本至0.11.0版本中存在信任管理问题漏洞。攻击者可利用该漏洞绕过安全检测。
CVE-2018-1320 MPS-2019-0104
2022-08-08 20:58
Apache Thrift 安全漏洞
不可达退出条件的循环(无限循环)
Apache Thrift是美国阿帕奇(Apache)基金会的一个用于跨平台开发的框架。 Apache Thrift 0.12.0及之前版本中存在安全漏洞。攻击者可利用该漏洞造成服务器或客户端无限循环。
CVE-2019-0205 MPS-2019-13876
2022-08-08 20:58
Apache Log4j 代码问题漏洞
反序列化
Log4j是美国阿帕奇(Apache)软件基金会的一款基于Java的开源日志记录工具。Log4j 1.2版本中包含一个SocketServer类,在未经验证的情况下,该SocketServe类很容易接受序列化的日志事件并对其进行反序列化,在结合反序列化工具使用时,可以利用该类远程执行任意代码。
CVE-2019-17571 MPS-2019-17271
2022-08-08 20:58
Fastjson <= 1.2.60 版本远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.60的版本中攻击者可通过精心构造的JSON请求,在autoType显式开启的情况下,绕过黑名单机制,远程执行任意代码。 漏洞原因: 攻击者发现了两个类JNDIConfiguration和OracleManagedConnectionFactory不在黑名单中,可调用连接远程rmi主机,通过其中的恶意类执行代码。
MPS-2019-28847
2022-08-08 20:58
Elasticsearch Elastic Enterprise Search 安全漏洞
特权管理不恰当
Elasticsearch Elastic Enterprise Search是荷兰Elasticsearch公司的一款企业搜索工具。 Elasticsearch 6.8.13版本和7.9.2之前版本存在安全漏洞,该漏洞源于在使用文档或字段级安全时包含文档泄露缺陷。在执行某些复杂查询时,搜索查询不能正确地保留安全权限。这可能导致搜索暴露了攻击者无法查看的文档的存在。攻击者可利用该漏洞对潜在的敏感索引有更多的了解。
CVE-2020-7020 MPS-2020-15777
2022-08-08 20:58
Apache Log4j SQL注入漏洞
SQL注入
根据设计,Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器。消息转换器 %m 可能总是包含在内。这允许攻击者通过将精心制作的字符串输入到记录的应用程序的输入字段或标题中来操纵 SQL,从而允许执行意外的 SQL 查询。请注意,此问题仅在专门配置为使用 JDBCAppender(不是默认设置)时才会影响 Log4j 1.x。从 2.0-beta8 版本开始,重新引入了 JDBCAppender,适当支持参数化 SQL 查询,并进一步自定义写入日志的列。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23305 MPS-2022-1444
2022-08-08 20:58
Apache Log4j 代码问题漏洞
反序列化
当攻击者对 Log4j 配置具有写访问权限或配置引用攻击者有权访问的 LDAP 服务时,所有 Log4j 1.x 版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供一个 TopicConnectionFactoryBindingName 配置,使 JMSSink 执行 JNDI 请求,从而以类似于 CVE-2021-4104 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23302 MPS-2022-1446
2022-08-08 20:58
LZ4‘lz4.c’整数溢出漏洞
输入验证不恰当
LZ4是法国软件开发者Yann Collet所研发的一种无损数据压缩算法。 基于32位平台上的Linux kernel 3.15.1及之前的版本的lib/lz4/lz4_decompress.c文件中的‘lz4_uncompress’函数和Yann Collet LZ4 r118之前的版本中使用的LZ4压缩算法中存在整数溢出漏洞。攻击者可利用该漏洞造成拒绝服务(内存损坏),也可能执行任意代码。
CVE-2014-4611 MPS-2014-3344
2022-08-08 20:58
Elasticsearch 信息泄露漏洞
信息暴露
Elasticsearch是荷兰Elasticsearch公司的一套基于Lucene构建的开源分布式RESTful搜索引擎。该产品主要应用于云计算,并支持通过HTTP使用JSON进行数据索引。 Elasticsearch 存在安全漏洞,攻击者可利用该漏洞通过Suggester/Profile API绕过数据访问限制,以获取敏感信息。
CVE-2021-22135 MPS-2021-6749
2022-08-08 20:58
com.fasterxml.jackson.core:jackson-core 存在资源管理错误漏洞
资源管理错误
com.fasterxml.jackson.core:jackson-core 是一个 Core Jackson 抽象,基本的 JSON 流 API 实现。此软件包的受影响版本容易受到拒绝服务 (DoS) 的攻击。如果 REST 端点使用带有 JSON 或 XML 数据的 POST 请求并且数据无效,则将第一个无法识别的令牌打印到 server.log。 .如果第一个标记是长度为 10MB 的单词,则打印整个单词。这是潜在的危险,可用于通过用日志填充磁盘来攻击服务器。
MPS-2022-11944
2022-08-08 20:58
jackson-core BigDecimal类型处理OOM问题
资源管理错误
com.fasterxml.jackson.core:jackson-core 是一个核心 Jackson 抽象,基本的 JSON 流 API 实现 这个包的受影响版本在处理BigDecimal类型时容易OOM,导致拒绝服务 (DoS) 。
MPS-2022-12166
2022-08-08 20:58
Apache Zookeeper 安全漏洞
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。 Apache Zookeeper 3.4.9版本和3.5.2版本中存在安全漏洞。攻击者可利用该漏洞造成拒绝服务。
CVE-2017-5637 MPS-2017-11297
2022-08-08 20:58
Elasticsearch 竞争条件问题漏洞
竞争条件
Elasticsearch是荷兰Elasticsearch公司的一套基于Lucene构建的开源分布式RESTful搜索引擎。该产品主要应用于云计算,并支持通过HTTP使用JSON进行数据索引。 Elasticsearch 7.2.1之前版本和6.8.2之前版本中存在竞争条件问题漏洞。攻击者可利用该漏洞获取含有其他用户敏感信息的响应头的访问权限。
CVE-2019-7614 MPS-2019-8854
2022-08-08 20:58
Fastjson <=1.2.68 远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.68的版本中攻击者可通过精心构造的JSON请求,远程执行恶意代码。 漏洞原因: Fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,发现在AutoTypeSupport关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。 本次绕过通过继承自 Throwable 异常类的白名单类gadget实现,漏洞点为ThrowableDeserializer#deserialze。
MPS-2020-39708
2022-08-08 20:58
Apache Zookeeper 信任管理漏洞
凭据管理错误
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。 Apache Zookeeper中存在安全漏洞,该漏洞源于程序记录明文admin密码。本地攻击者可通过读取日志利用该漏洞获取敏感信息。
CVE-2014-0085 MPS-2014-1943
2022-08-08 20:58
Fastjson < 1.2.60 版本拒绝服务漏洞
拒绝服务
Fastjson 是Java语言实现的快速JSON解析和生成器,在<1.2.60的版本中攻击者可通过精心构造的JSON请求,造成服务器内存和CPU等资源耗尽,最终系统宕机。 漏洞原因: fastjson处理\x转义字符不当,json中包含恶意构造的请求时可能引发OOM。
MPS-2019-28848
2022-08-08 20:58
Elasticsearch 资源管理错误漏洞
未经控制的递归
Elasticsearch是荷兰Elasticsearch公司的一套基于Lucene构建的开源分布式RESTful搜索引擎。该产品主要应用于云计算,并支持通过HTTP使用JSON进行数据索引。 Elasticsearch 存在资源管理错误漏洞,该漏洞源于Grok查询触发Elasticsearch的过载。攻击者可利用该漏洞触发拒绝服务。
CVE-2021-22144 MPS-2021-11043
2022-08-08 20:58
Elasticsearch 信息泄露漏洞
信息暴露
Elasticsearch是荷兰Elasticsearch公司的一套基于Lucene构建的开源分布式RESTful搜索引擎。该产品主要应用于云计算,并支持通过HTTP使用JSON进行数据索引。 Elasticsearch 存在信息泄露漏洞,攻击者可利用该漏洞通过Cross-cluster Search Queries绕过数据访问限制,以获取敏感信息。
CVE-2021-22137 MPS-2021-6747
2022-08-08 20:58
fastjson < 1.2.83 任意代码执行漏洞
反序列化
Fastjson 是Java语言实现的快速JSON解析和生成器。 fastjson 使用黑白名单用于防御反序列化漏洞,1.2.80及以下版本在特定条件下可绕过默认autoType关闭限制,攻击远程服务器。 攻击者可利用该漏洞远程执行恶意代码。
CVE-2022-25845 MPS-2022-11320
2022-08-08 20:58
Netty 环境问题漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.42.Final之前版本中存在安全漏洞。攻击者可利用该漏洞实施HTTP请求走私攻击。
CVE-2019-16869 MPS-2019-12064
2022-08-08 20:58
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
25 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部