Apache rocketmq

Overview

RocketMQ Streams

Build Status CodeCov GitHub release License Average time to resolve an issue Percentage of issues still open Twitter Follow

Features

  • 轻量级部署:可以单独部署,也支持集群部署
  • 多种类型的数据输入以及输出,source支持 rocketmq , sink支持db, rocketmq 等

DataStream Example

import org.apache.rocketmq.streams.client.transform.DataStream;

DataStreamSource source=StreamBuilder.dataStream("namespace","pipeline");

    source
    .fromFile("~/admin/data/text.txt",false)
    .map(message->message)
    .toPrint(1)
    .start();

Maven Repository

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-streams-clients</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

Core API

rocketmq-stream 实现了一系列高级的API,可以让用户很方便的编写流计算的程序,实现自己的业务需求;

StreamBuilder

StreamBuilder 用于构建流任务的源; 内部包含dataStream()tableStream()俩个方法,分别返回DataStreamSource和TableStreamSource俩个源;

DataStream API

Source

DataStreamSource 是分段式编程的源头类,用于对接各种数据源, 从各大消息队列中获取数据;

  • fromFile 从文件中读取数据, 该方法包含俩个参数

    • filePath 文件路径,必填参数
    • isJsonData 是否json数据, 非必填参数, 默认为true
  • fromRocketmq 从rocketmq中获取数据,包含四个参数

    • topic rocketmq消息队列的topic名称,必填参数
    • groupName 消费者组的名称,必填参数
    • isJson 是否json格式,非必填参数
    • tags rocketmq消费的tags值,用于过滤消息,非必填参数
  • from 自定义的数据源, 通过实现ISource接口实现自己的数据源

transform

transform 允许在流计算过程中对输入源的数据进行修改,进行下一步的操作;DataStream API中包括DataStream,JoinStream, SplitStream,WindowStream等多个transform类;

DataStream

DataStream实现了一系列常见的流计算算子

  • map 通过将源的每个记录传递给函数func来返回一个新的DataStream
  • flatmap 与map类似,一个输入项对应0个或者多个输出项
  • filter 只选择func返回true的源DStream的记录来返回一个新的DStream
  • forEach 对每个记录执行一次函数func, 返回一个新的DataStream
  • selectFields 对每个记录返回对应的字段值,返回一个新的DataStream
  • operate 对每个记录执行一次自定义的函数,返回一个新的DataStream
  • script 针对每个记录的字段执行一段脚本,返回新的字段,生成一个新的DataStream
  • toPrint 将结果在控制台打印,生成新的DataStreamAction实例
  • toFile 将结果保存为文件,生成一个新的DataStreamAction实例
  • toDB 将结果保存到数据库
  • toRocketmq 将结果输出到rocketmq
  • to 将结果经过自定义的ISink接口输出到指定的存储
  • window 在窗口内进行相关的统计分析,一般会与groupBy连用, window()用来定义窗口的大小, groupBy()用来定义统计分析的主key,可以指定多个
    • count 在窗口内计数
    • min 获取窗口内统计值的最小值
    • max 获取窗口内统计值得最大值
    • avg 获取窗口内统计值的平均值
    • sum 获取窗口内统计值的加和值
    • reduce 在窗口内进行自定义的汇总运算
  • join 根据条件将将俩个流进行关联, 合并为一个大流进行相关的运算
  • union 将俩个流进行合并
  • split 将一个数据流按照标签进行拆分,分为不同的数据流供下游进行分析计算
  • with with算子用来指定计算过程中的相关策略,包括checkpoint的存储策略,state的存储策略等

Strategy

策略机制主要用来控制计算引擎运行过程中的底层逻辑,如checkpoint,state的存储方式等,后续还会增加对窗口、双流join等的控制;所有的控制策略通过with算子传入,可以同时传入多个策略类型;

//指定checkpoint的存储策略
source
    .fromRocketmq("TSG_META_INFO","")
    .map(message->message+"--")
    .toPrint(1)
    .with(CheckpointStrategy.db("jdbc:mysql://XXXXX:3306/XXXXX","","",0L))
    .start();
Comments
  • Whether RocketMQ streams consider retaining only RocketMQ source/sink   ?

    Whether RocketMQ streams consider retaining only RocketMQ source/sink ?

    RocketMQ streams 会考虑只保留 rocketmq 的source 和sink , 将其它连接器交给 connect 来做吗 ?

    1. 不同源的 connector 扩展本身也有一定的开发量和大量的成本,两边同时扩展也会存在一些重复
    2. streams 本身也可以通过 topic queue 的调节来提高stream并发的数量
    progress/discuss 
    opened by sunxiaojian 3
  • Bump mysql-connector-java from 5.1.40 to 8.0.16

    Bump mysql-connector-java from 5.1.40 to 8.0.16

    Bumps mysql-connector-java from 5.1.40 to 8.0.16.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.28

    • Fix for Bug#99260 (31189960), statement.setQueryTimeout,creates a database connection and does not close.

    • Fix for Bug#103324 (32770013), X DevAPI Collection.replaceOne() missing matching _id check.

    • Fix for Bug#105197 (33461744), Statement.executeQuery() may return non-navigable ResultSet.

    • Fix for Bug#105323 (33507321), README.md contains broken links.

    • Fix for Bug#96900 (30355150), STATEMENT.CANCEL()CREATE A DATABASE CONNECTION BUT DOES NOT CLOSE THE CONNECTION.

    • Fix for Bug#104067 (33054827), No reset autoCommit after unknown issue occurs. Thanks to Tingyu Wei for his contribution.

    • Fix for Bug#85223 (25656020), MYSQLSQLXML SETSTRING CRASH.

    • Fix for Bug#84365 (33425867), INSERT..VALUE with VALUES function lead to a StringIndexOutOfBoundsException.

    • Fix for Bug#105211 (33468860), class java.time.LocalDate cannot be cast to class java.sql.Date.

    • Fix for Bug#101389 (32089018), GETWARNINGS SHOULD CHECK WARNING COUNT BEFORE SENDING SHOW.

    • Fix for Bug#33488091, Remove all references to xdevapi.useAsyncProtocol from properties and code.

    • WL#14805, Remove support for TLS 1.0 and 1.1.

    • WL#14650, Support for MFA (multi factor authentication) authentication.

    Version 8.0.27

    • Fix for Bug#103612 (32902019), Incorrectly identified WITH...SELECT as unsafe for read-only connections.

    • Fix for Bug#71929 (18346501), Prefixing query with double comments cancels query DML validation.

    • Fix for Bug#23204652, CURSOR POSITIONING API'S DOESNOT CHECK THE VALIDITY OF RESULTSET.

    • Fix for Bug#28725534, MULTI HOST CONNECTION WOULD BLOCK IN CONNECTION POOLING.

    • Fix for Bug#95139 (29807572), CACHESERVERCONFIGURATION APPEARS TO THWART CHARSET DETECTION.

    • Fix for Bug#104641 (33237255), DatabaseMetaData.getImportedKeys can return duplicated foreign keys.

    • Fix for Bug#33185116, Have method ResultSet.getBoolean() supporting conversion of 'T' and 'F' in a VARCHAR to True/False (boolean).

    • Fix for Bug#31117686, PROTOCOL ALLOWLIST NOT COMPATIBLE WITH IBM JAVA.

    ... (truncated)

    Commits
    • 34cbc6b License book updated.
    • 793bd55 Minor fix for tests failing with URL without parameters.
    • 58600cc WL#12825, Remove third-party libraries from sources and bundles.
    • 5aa15d5 Fix for Bug#93590 (29054329), javax.net.ssl.SSLException: closing inbound bef...
    • 1fecc2b Fix for Bug#94414 (29384853), Connector/J RPM package have version number in ...
    • f5d24e3 Fix for Bug#27786499, REDUNDANT FILES IN DEBIAN PACKAGE FOR DEBIAN9(COMMUNITY...
    • c49db58 WL#12246, DevAPI: Prepared statement support.
    • a5c3d29 Added definition file for msi building tools.
    • 13045c2 WL#10839, Adjust c/J tests to the new "ON" default for
    • 2e350a5 Fix for Bug#29329326, PLEASE AVOID SHOW PROCESSLIST IF POSSIBLE.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 3
  • fromFile not exist cause queue NPE

    fromFile not exist cause queue NPE

    plz close this issue if same as #90

    org.apache.rocketmq.streams.examples.source.FileSourceExample

    if fromFile is not exist, will throwing NPE as below.

    截屏2022-01-30 13 02 00

    java.lang.NullPointerException
    	at org.apache.rocketmq.streams.common.channel.impl.file.FileSource.startSource(FileSource.java:90)
    	at org.apache.rocketmq.streams.common.channel.source.AbstractSource.start(AbstractSource.java:114)
    	at org.apache.rocketmq.streams.common.topology.ChainPipeline.startChannel(ChainPipeline.java:150)
    	at org.apache.rocketmq.streams.client.transform.DataStream$7.run(DataStream.java:714)
    	at java.lang.Thread.run(Thread.java:748)
    

    how about fast-fail with throwing FileNotFoundException

    opened by WesleyOne 3
  • build(deps): bump jython-standalone from 2.7.0 to 2.7.1

    build(deps): bump jython-standalone from 2.7.0 to 2.7.1

    Bumps jython-standalone from 2.7.0 to 2.7.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump mysql-connector-java from 8.0.19 to 8.0.28 in /rocketmq-streams-examples

    Bump mysql-connector-java from 8.0.19 to 8.0.28 in /rocketmq-streams-examples

    Bumps mysql-connector-java from 8.0.19 to 8.0.28.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.29

    • Fix for Bug#21978230, COMMENT PARSING NOT PROPER IN PREPSTMT.EXECUTEBATCH().

    • Fix for Bug#81468 (23312764), MySQL server fails to rewrite batch insert when column name contains word select.

    • Fix for Bug#106435 (33850099), 8.0.28 Connector/J has regressive in setAutoCommit after Bug#104067 (33054827).

    • Fix for Bug#106240 (33781440), StringIndexOutOfBoundsException when VALUE is at the end of the query.

    • Fix for Bug#106397 (33893591), Contribution: fix: fix LocalizedErrorMessages.properties doc: less then -> ... Thanks to Jianjian Song for his contribution.

    • Fix for Bug#77924 (25710160), JDBC SOCKS SHOULD NOT PERFORM LOCAL DNS RESOLUTION.

    • Fix for Bug#82084 (23743938), YEAR DATA TYPE RETURNS INCORRECT VALUE FOR JDBC GETCOLUMNTYPE().

    • Fix for Bug#106441 (33850155), Add charset mapping for utf8mb3.

    • WL#15048, Upgrade Protocol Buffers dependency to protobuf-java-3.19.4.

    • Fix for Bug#106065 (33726184) Contribution: BigDecimal.toPlainString no need to check decimal exponent. Thanks to Baoyi Chen for his contribution.

    • Fix for Bug#106171 (33757217), Contribution: Remove unnecessary boxing in ResultSetImpl. Thanks to Ningpp Ning for his contribution.

    • Fix for Bug#25701740, STMT EXECUTION FAILS FOR REPLICATION CONNECTION WHEN USECURSORFETCH=TRUE.

    • Fix for Bug#33723611, getDefaultTransactionIsolation must return repeatable read.

    • Fix for Bug#38954 (11749415), DATA TRUNCATION WHILE USING BIT(1) IN STORED PROCEDURE WITH INOUT TYPE.

    • Fix for Bug#85317 (25672958), EXECUTE BATCH WILL THROW NULL POINTER EXCEPTION WHERE THE COLUMN IS BLOB!

    • Fix for Bug#105915 (33678490), Connector/J 8 server prepared statement precision loss in execute batch.

    • Fix for Bug#104349 (33563548), com.mysql.cj NPE.

    • Fix for Bug#62006 (16714956), JAVA.IO.NOTSERIALIZABLEEXCEPTION: JAVA.IO.STRINGREADER WHEN PROFILESQL=TRUE.

    • WL#14750, Better unification of query bindings.

    • WL#14834, Support for FIDO authentication.

    • WL#14835, Align TLS option checking across connectors.

    ... (truncated)

    Commits
    • 7ff2161 Updating copyright years
    • b13af38 Fix for DateTimeTest according to changes in MySQL server.
    • 5c7b775 Update in test for Bug#96900 (30355150).
    • e1169ee Fix for Bug#99260 (31189960), statement.setQueryTimeout,creates a database co...
    • 05778ef Fix for Bug#103324 (32770013), X DevAPI Collection.replaceOne() missing match...
    • 48219f2 Fix for Bug#105197 (33461744), Statement.executeQuery() may return non-naviga...
    • 24cf7e2 Fix for Bug#105323 (33507321), README.md contains broken links.
    • ad46620 Fix for Bug#96900 (30355150), STATEMENT.CANCEL()CREATE A DATABASE
    • 4d19ea1 Fix for Bug#104067 (33054827), No reset autoCommit after unknown issue occurs.
    • bc45d35 Fix for Bug#85223 (25656020), MYSQLSQLXML SETSTRING CRASH.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump mysql-connector-java from 5.1.40 to 8.0.28

    Bump mysql-connector-java from 5.1.40 to 8.0.28

    Bumps mysql-connector-java from 5.1.40 to 8.0.28.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.29

    • Fix for Bug#21978230, COMMENT PARSING NOT PROPER IN PREPSTMT.EXECUTEBATCH().

    • Fix for Bug#81468 (23312764), MySQL server fails to rewrite batch insert when column name contains word select.

    • Fix for Bug#106435 (33850099), 8.0.28 Connector/J has regressive in setAutoCommit after Bug#104067 (33054827).

    • Fix for Bug#106240 (33781440), StringIndexOutOfBoundsException when VALUE is at the end of the query.

    • Fix for Bug#106397 (33893591), Contribution: fix: fix LocalizedErrorMessages.properties doc: less then -> ... Thanks to Jianjian Song for his contribution.

    • Fix for Bug#77924 (25710160), JDBC SOCKS SHOULD NOT PERFORM LOCAL DNS RESOLUTION.

    • Fix for Bug#82084 (23743938), YEAR DATA TYPE RETURNS INCORRECT VALUE FOR JDBC GETCOLUMNTYPE().

    • Fix for Bug#106441 (33850155), Add charset mapping for utf8mb3.

    • WL#15048, Upgrade Protocol Buffers dependency to protobuf-java-3.19.4.

    • Fix for Bug#106065 (33726184) Contribution: BigDecimal.toPlainString no need to check decimal exponent. Thanks to Baoyi Chen for his contribution.

    • Fix for Bug#106171 (33757217), Contribution: Remove unnecessary boxing in ResultSetImpl. Thanks to Ningpp Ning for his contribution.

    • Fix for Bug#25701740, STMT EXECUTION FAILS FOR REPLICATION CONNECTION WHEN USECURSORFETCH=TRUE.

    • Fix for Bug#33723611, getDefaultTransactionIsolation must return repeatable read.

    • Fix for Bug#38954 (11749415), DATA TRUNCATION WHILE USING BIT(1) IN STORED PROCEDURE WITH INOUT TYPE.

    • Fix for Bug#85317 (25672958), EXECUTE BATCH WILL THROW NULL POINTER EXCEPTION WHERE THE COLUMN IS BLOB!

    • Fix for Bug#105915 (33678490), Connector/J 8 server prepared statement precision loss in execute batch.

    • Fix for Bug#104349 (33563548), com.mysql.cj NPE.

    • Fix for Bug#62006 (16714956), JAVA.IO.NOTSERIALIZABLEEXCEPTION: JAVA.IO.STRINGREADER WHEN PROFILESQL=TRUE.

    • WL#14750, Better unification of query bindings.

    • WL#14834, Support for FIDO authentication.

    • WL#14835, Align TLS option checking across connectors.

    ... (truncated)

    Commits
    • 7ff2161 Updating copyright years
    • b13af38 Fix for DateTimeTest according to changes in MySQL server.
    • 5c7b775 Update in test for Bug#96900 (30355150).
    • e1169ee Fix for Bug#99260 (31189960), statement.setQueryTimeout,creates a database co...
    • 05778ef Fix for Bug#103324 (32770013), X DevAPI Collection.replaceOne() missing match...
    • 48219f2 Fix for Bug#105197 (33461744), Statement.executeQuery() may return non-naviga...
    • 24cf7e2 Fix for Bug#105323 (33507321), README.md contains broken links.
    • ad46620 Fix for Bug#96900 (30355150), STATEMENT.CANCEL()CREATE A DATABASE
    • 4d19ea1 Fix for Bug#104067 (33054827), No reset autoCommit after unknown issue occurs.
    • bc45d35 Fix for Bug#85223 (25656020), MYSQLSQLXML SETSTRING CRASH.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • There is dependency conflict if application and RocketMQ Streams has same dependency.

    There is dependency conflict if application and RocketMQ Streams has same dependency.

    There is dependency conflict if application and RocketMQ Streams has same dependency. RocketMQ Streams as a SDK, which is dependent by application, should shade it's dependency to avoid conflict.

    enhancement 
    opened by ni-ze 2
  • Remove ConfigurableComponent components

    Remove ConfigurableComponent components

    ConfigurableComponent is used to submit tasks across processes, such as a client submit a task to Streams server, but it do not suitable RocketMQ Streams now, and this part of the code is too complicated to understand.

    help wanted 
    opened by ni-ze 2
  • Provide RocketMQ Connect sink/source

    Provide RocketMQ Connect sink/source

    I would like to provide a RocketMQ Connect sink/source in addition to the existing sink/source in RocketMQ Streams. The data in others components, like mysql, are imported into RocketMQ using RocketMQ Connect. In this way, source and sink process are separate with streaming process, source/sink are more stable, and streaming process focus on its own business.

    opened by ni-ze 2
  • Implement of Apache RocketMQ Streams dispatching system

    Implement of Apache RocketMQ Streams dispatching system

    题目名称:Apache RocketMQ Streams 调度系统的实现 导师介绍:程君杰, Apache RocketMQ Committer 导师邮箱:[email protected] 题目难度:进阶 题目描述:通过调度系统, 实时任务实例可以在Rocketmq Streams集群中实现动态的调度; 相关材料: RocketMQ Streams 代码 / 文档 https://github.com/apache/rocketmq-streams https://jet-cheng.gitbook.io/rocketmq-streams

    1、学习Apache Rocketmq Streams的知识, 学习了解Rocketmq Streams的场景、使用方式、参数意义等; 2、了解Rocketmq Streams实例以及任务之间的关系,实现轻量化的任务调度功能,实现任务的差异化运行; 3、在社区中提交Issue,完成相关代码,review后被社区合并

    soc 
    opened by ShannonDing 2
  • There is no log output when rocketmq-streams running.

    There is no log output when rocketmq-streams running.

    There is no rocketmq-streams log output right now, when a APP running base on rocketmq-streams. It is inconvenient for troubleshooting. We can implement a inner log, which should not conflict with user's local log dependencies. A client log in rocketmq: org.apache.rocketmq.client.log.ClientLogger

    which solve this problem based on InnerLoggerFactory .

    There are other log dependency, such as log4j, in rocketmq-streams, we also need remove it and only use one log dependency.

    enhancement good first issue 
    opened by ni-ze 2
  • Are you using RocketMQ Streams?

    Are you using RocketMQ Streams?

    Are you using RocketMQ Streams?

    If you are using RocketMQ Streams, first we would like to Thank You. Here, we sincerely invite you to take a minute to feedback on your usage scenario.

    The purpose of this issue

    We are always interested in finding out who is using Streams, what attracted you to use it, how we can listen to your needs, and if you are interested, help promote your organization.

    What we would like from you

    Pls. submit a comment in this issue to include the following information:

    • your company, school, or organization
    • your country and city
    • your contact info, such as email, WeChat, and Twitter (optional).
    • usage scenario
    • expectations(optional)

    You can refer to the following sample answer for the format:

    * Organization: XX Company
    * Location: Seoul, South Korea
    * Contact: [email protected]
    * Version: v1.0.0
    * Status: production
    * Expectations(optional): Data ingest service
    

    Thanks again for your participation! Apache RocketMQ Community

    help wanted 
    opened by vongosling 2
Releases(rocketmq-streams-all-1.1.0)
  • rocketmq-streams-all-1.1.0(Jan 6, 2023)

    1. A new stream processing task construction process.
    2. Removes the configurable module and makes code more clear.
    3. Support custom serialization and deserialization.
    4. A new stream processing process, unify the source and shuffle.

    What's Changed

    • add kafka module by @j-ching in https://github.com/apache/rocketmq-streams/pull/137
    • bugfix list by @speak2me in https://github.com/apache/rocketmq-streams/pull/125
    • Bump logback-core from 1.2.3 to 1.2.9 by @dependabot in https://github.com/apache/rocketmq-streams/pull/145
    • Bump quartz from 2.2.1 to 2.3.2 by @dependabot in https://github.com/apache/rocketmq-streams/pull/139
    • Bump junit from 4.12 to 4.13.1 by @dependabot in https://github.com/apache/rocketmq-streams/pull/141
    • Bump commons-collections from 3.2.1 to 3.2.2 by @dependabot in https://github.com/apache/rocketmq-streams/pull/142
    • fix example code 404 in README.md by @rocklau in https://github.com/apache/rocketmq-streams/pull/147
    • Bump commons-io from 2.5 to 2.7 by @dependabot in https://github.com/apache/rocketmq-streams/pull/146
    • Bump httpclient from 4.5.2 to 4.5.13 by @dependabot in https://github.com/apache/rocketmq-streams/pull/140
    • Snapshot 1.0.2 by @j-ching in https://github.com/apache/rocketmq-streams/pull/148
    • Snapshot 1.0.3 by @j-ching in https://github.com/apache/rocketmq-streams/pull/157
    • [ISSUE #161] fix(example) add can_clear_resource in sql by @ni-ze in https://github.com/apache/rocketmq-streams/pull/160
    • Bump gson from 2.8.5 to 2.8.9 by @dependabot in https://github.com/apache/rocketmq-streams/pull/158
    • Bump fastjson from 1.2.9 to 1.2.25.sec10 by @dependabot in https://github.com/apache/rocketmq-streams/pull/143
    • Bump fastjson from 1.2.25.sec10 to 1.2.83 by @dependabot in https://github.com/apache/rocketmq-streams/pull/166
    • modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/169
    • [ISSUE #170] An example of real-time score statistics by @123liuziming in https://github.com/apache/rocketmq-streams/pull/171
    • [ISSUE #184]fix(commons) type inconsistency by @ni-ze in https://github.com/apache/rocketmq-streams/pull/185
    • [ISSUE #175] Corrects a spelling error in the word "stream" by @tongfs in https://github.com/apache/rocketmq-streams/pull/176
    • [ISSUE #172][ISSUE #174]Modify the File Source Example; Update README; Fix incompatible types bug by @hyl-xidian in https://github.com/apache/rocketmq-streams/pull/173
    • [RIP-35] Use rocketmq instead of mysql as state store by @ni-ze in https://github.com/apache/rocketmq-streams/pull/132
    • [ISSUE #187]Merge from Snapshot 1.0.4 by @ni-ze in https://github.com/apache/rocketmq-streams/pull/186
    • Add dependency in serviceLoad module by @ni-ze in https://github.com/apache/rocketmq-streams/pull/191
    • Use Pair class of apache.commons.lang3 instead of javafx by @linfan in https://github.com/apache/rocketmq-streams/pull/193
    • [ISSUE #196]fix(ChannelBuilder) add ChannelBuilder by @ni-ze in https://github.com/apache/rocketmq-streams/pull/195
    • Use shade plugin to hide dependencies by @totalo in https://github.com/apache/rocketmq-streams/pull/194
    • support join sql in rsqldb by @ni-ze in https://github.com/apache/rocketmq-streams/pull/197
    • fix(left join) fix left join by @ni-ze in https://github.com/apache/rocketmq-streams/pull/198
    • [ISSUE #199]Support rsqldb by @ni-ze in https://github.com/apache/rocketmq-streams/pull/200
    • [ISSUE #202] adapt jdk11 by @MatrixHB in https://github.com/apache/rocketmq-streams/pull/204
    • Resolve bug of concurrent modification by @ni-ze in https://github.com/apache/rocketmq-streams/pull/201
    • [ISSue #208]Support rsqldb by @ni-ze in https://github.com/apache/rocketmq-streams/pull/207
    • [ISSUE #210]support session and hop window by @ni-ze in https://github.com/apache/rocketmq-streams/pull/209
    • [ISSUE #205] support message body converted into UserDefinedMessage with schema by @MatrixHB in https://github.com/apache/rocketmq-streams/pull/206
    • support emit and watermark by @ni-ze in https://github.com/apache/rocketmq-streams/pull/211
    • [ISSUE #213]fix(custom function) support utf by @ni-ze in https://github.com/apache/rocketmq-streams/pull/212
    • [ISSUE #214] duplicate unit test by @selectbook in https://github.com/apache/rocketmq-streams/pull/215
    • fix(common) modify name by @ni-ze in https://github.com/apache/rocketmq-streams/pull/217
    • Add string schema and word-count example by @MatrixHB in https://github.com/apache/rocketmq-streams/pull/216
    • feature(configuable) support store configuration in db by @ni-ze in https://github.com/apache/rocketmq-streams/pull/218
    • fix(common) remove dipper by @ni-ze in https://github.com/apache/rocketmq-streams/pull/219
    • maintain(doc) design by @ni-ze in https://github.com/apache/rocketmq-streams/pull/222
    • support customized deserializer for dataStream from RocketMQ by @MatrixHB in https://github.com/apache/rocketmq-streams/pull/221
    • fix(window) remove isSplitsReceiver by @ni-ze in https://github.com/apache/rocketmq-streams/pull/223
    • modify email by @ni-ze in https://github.com/apache/rocketmq-streams/pull/226
    • fix(common) remove slf4j-log4j12 by @ni-ze in https://github.com/apache/rocketmq-streams/pull/227
    • [ISSUE #230][RIP-58]RocketMQ Streams improvement by @ni-ze in https://github.com/apache/rocketmq-streams/pull/229
    • [ISSUE #232]add operator in groupByStream by @ni-ze in https://github.com/apache/rocketmq-streams/pull/231
    • [ISSUE #234]Add quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/233
    • [doc] modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/235
    • [doc] modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/236
    • [doc] modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/237
    • modify version to 1.1.0-SNAPSHOT by @ni-ze in https://github.com/apache/rocketmq-streams/pull/238
    • [doc] modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/239
    • [doc] modify quick start by @ni-ze in https://github.com/apache/rocketmq-streams/pull/240
    • remove useless class by @ni-ze in https://github.com/apache/rocketmq-streams/pull/241
    • add exception by @ni-ze in https://github.com/apache/rocketmq-streams/pull/242
    • [ISSUE #244]Add flatmap, add tostring, modify the key of sink topic by @ni-ze in https://github.com/apache/rocketmq-streams/pull/243
    • add example by @ni-ze in https://github.com/apache/rocketmq-streams/pull/245

    New Contributors

    • @dependabot made their first contribution in https://github.com/apache/rocketmq-streams/pull/145
    • @rocklau made their first contribution in https://github.com/apache/rocketmq-streams/pull/147
    • @123liuziming made their first contribution in https://github.com/apache/rocketmq-streams/pull/171
    • @tongfs made their first contribution in https://github.com/apache/rocketmq-streams/pull/176
    • @hyl-xidian made their first contribution in https://github.com/apache/rocketmq-streams/pull/173
    • @linfan made their first contribution in https://github.com/apache/rocketmq-streams/pull/193
    • @totalo made their first contribution in https://github.com/apache/rocketmq-streams/pull/194
    • @MatrixHB made their first contribution in https://github.com/apache/rocketmq-streams/pull/204
    • @selectbook made their first contribution in https://github.com/apache/rocketmq-streams/pull/215

    Full Changelog: https://github.com/apache/rocketmq-streams/compare/rocketmq-streams-1.0.1-preview...rocketmq-streams-all-1.1.0

    Source code(tar.gz)
    Source code(zip)
  • rocketmq-streams-1.0.1-preview(Apr 18, 2022)

    What's Changed

    • fix #127 by @WesleyOne in https://github.com/apache/rocketmq-streams/pull/128
    • [ISSUES #129]feat(doc) add design documentation directory by @ni-ze in https://github.com/apache/rocketmq-streams/pull/130
    • [ISSUES #133] Add design doc into README-chinese.md by @ni-ze in https://github.com/apache/rocketmq-streams/pull/134
    • [ISSUES 135] App can not start up with RocketMQ-streams by @ni-ze in https://github.com/apache/rocketmq-streams/pull/136
    • add the RocketMQ word Hyperlink in readme file by @tianliuliu in https://github.com/apache/rocketmq-streams/pull/138

    New Contributors

    • @WesleyOne made their first contribution in https://github.com/apache/rocketmq-streams/pull/128
    • @tianliuliu made their first contribution in https://github.com/apache/rocketmq-streams/pull/138

    Full Changelog: https://github.com/apache/rocketmq-streams/compare/rocketmq-streams-1.0.0-preview...rocketmq-streams-1.0.1-preview

    Source code(tar.gz)
    Source code(zip)
  • rocketmq-streams-1.0.0-preview(Jan 27, 2022)

    What's Changed

    • [ISSUE #29]added english descriptions of read.me by @Laura-monkey in https://github.com/apache/rocketmq-streams/pull/28
    • [ISSUE 31] Change Chinese doc file path by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/30
    • AbstractChannel with two redundant method can not compile. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/26
    • [ISSUE #33]Exclude CI files in apache rat check by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/32
    • add license header by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/36
    • fix RocketMQ Source has no namesrv set error by @francisoliverlee in https://github.com/apache/rocketmq-streams/pull/35
    • [ISSUE #37]Add Apache license and fix some naming problems by @caigy in https://github.com/apache/rocketmq-streams/pull/38
    • fix some error and make a code style. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/39
    • test window exactly once success and fixed bugs by @yuanxiaodong in https://github.com/apache/rocketmq-streams/pull/43
    • make a runnable example. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/44
    • [ISSUE #48]add bitset cache to optimize regex by @yuanxiaodong in https://github.com/apache/rocketmq-streams/pull/46
    • add cache filter to excute quickly for script by @yuanxiaodong in https://github.com/apache/rocketmq-streams/pull/49
    • some file lack of apace license. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/52
    • make a runnable example of window operator. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/54
    • add update logic for the DBSinker 、 upgrade the concat_ws function by @program-0 in https://github.com/apache/rocketmq-streams/pull/57
    • Joinwindow bug fix by @xstorm1 in https://github.com/apache/rocketmq-streams/pull/61
    • Add Sqlmode by @program-0 in https://github.com/apache/rocketmq-streams/pull/63
    • support hyperscan and fixed bugs by @yuanxiaodong in https://github.com/apache/rocketmq-streams/pull/67
    • [ISSUE #65]Polish RocketMQ topic create process and sink settings by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/64
    • add checkpoint storage by @cyril68 in https://github.com/apache/rocketmq-streams/pull/69
    • Add a quick start which contain some examples. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/68
    • Add fingerprinting to the client by @program-0 in https://github.com/apache/rocketmq-streams/pull/77
    • #73 #74 session window and count(distinct) implementation by @speak2me in https://github.com/apache/rocketmq-streams/pull/70
    • #73 #74 session window and count(distinct) implementation by @speak2me in https://github.com/apache/rocketmq-streams/pull/71
    • [ISSUE #76]Verify horizontal expansion capabilities of rocketmq-streams client. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/75
    • [ISSUE #73 #74] session window and count(distinct) implementation by @speak2me in https://github.com/apache/rocketmq-streams/pull/79
    • [ISSUE #85] Recorrect example. by @ni-ze in https://github.com/apache/rocketmq-streams/pull/84
    • add batch stream features and cycle schedule by @cyril68 in https://github.com/apache/rocketmq-streams/pull/81
    • add 'synchronized', fix joinwindow firewindow issue by @xstorm1 in https://github.com/apache/rocketmq-streams/pull/83
    • Window by @yuanxiaodong in https://github.com/apache/rocketmq-streams/pull/87
    • fix(window) fix queuelist null pointer exception by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/89
    • changes by @speak2me in https://github.com/apache/rocketmq-streams/pull/91
    • add dim&script&filter&kafka by @cyril68 in https://github.com/apache/rocketmq-streams/pull/93
    • [ISSUE #95]Remove README-Chinese.md by @ni-ze in https://github.com/apache/rocketmq-streams/pull/94
    • [ISSUE #97]Fix file source example by @ni-ze in https://github.com/apache/rocketmq-streams/pull/96
    • [ISSUE #99] Add default rebalance strategy by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/98
    • [ISSUE #101]Fix example RocketMQSourceExample1 by @ni-ze in https://github.com/apache/rocketmq-streams/pull/100
    • fix check failed issue by @duhenglucky in https://github.com/apache/rocketmq-streams/pull/102
    • add example log4j config by @lizhiboo in https://github.com/apache/rocketmq-streams/pull/111
    • Fix npe two streams & fix joinwindow's production donot be conducted by mainpipeline's following stages by @lizhiboo in https://github.com/apache/rocketmq-streams/pull/104
    • add multi rocketmq source example by @lizhiboo in https://github.com/apache/rocketmq-streams/pull/106
    • Fix join and Window issues, add the mqtt source and sink by @program-0 in https://github.com/apache/rocketmq-streams/pull/112
    • [ISSUE #113]Multi rocketmq source example by @lizhiboo in https://github.com/apache/rocketmq-streams/pull/113
    • [ISSUE #116] Fix bug and add join window example by @ni-ze in https://github.com/apache/rocketmq-streams/pull/115
    • Release 1.0.0 by @program-0 in https://github.com/apache/rocketmq-streams/pull/119
    • The year should be updated to 2022 in NOTICE file by @JacekJanur in https://github.com/apache/rocketmq-streams/pull/124
    • bugfix_20220105 by @speak2me in https://github.com/apache/rocketmq-streams/pull/122

    New Contributors

    • @Laura-monkey made their first contribution in https://github.com/apache/rocketmq-streams/pull/28
    • @ni-ze made their first contribution in https://github.com/apache/rocketmq-streams/pull/26
    • @francisoliverlee made their first contribution in https://github.com/apache/rocketmq-streams/pull/35
    • @caigy made their first contribution in https://github.com/apache/rocketmq-streams/pull/38
    • @JacekJanur made their first contribution in https://github.com/apache/rocketmq-streams/pull/124

    Full Changelog: https://github.com/apache/rocketmq-streams/commits/rocketmq-streams-1.0.0-preview

    Source code(tar.gz)
    Source code(zip)
Owner
The Apache Software Foundation
The Apache Software Foundation
A Spring Boot Camel boilerplate that aims to consume events from Apache Kafka, process it and send to a PostgreSQL database.

SPRING-BOOT CAMEL BOILERPLATE This is a Spring-Boot Camel Application model that you can use as a reference to study or even to use in your company. I

Bruno Delgado 45 Apr 4, 2022
Kong agent for Apache SkyWalking

Apache SkyWalking Kong Agent SkyWalking Kong agent built on SkyWalking Nginx Lua agent to trace Kong API gateway for Apache SkyWalking APM. Usage Inst

The Apache Software Foundation 23 Nov 20, 2022
The Apache Software Foundation 605 Dec 30, 2022
SpringBoot show case application for reactive-pulsar library (Reactive Streams adapter for Apache Pulsar Java Client)

Reactive Pulsar Client show case application Prerequisites Cloning reactive-pulsar Running this application requires cloning https://github.com/lhotar

Lari Hotari 9 Nov 10, 2022
source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Reactive" talk held at ApacheCon@Home 2021

reactive-iot-backend The is the source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Re

Lari Hotari 4 Jan 13, 2022
Apache Log4j2 CVE-2021-44228 RCE Demo with RMI and LDAP

CVE-2021-44228-Demo 利用 CVE-2021-44228,通过 RMI 和 LDAP 两种方式远程注入代码的示例。 Exploit class from RMI Server loaded Hello, ${jndi:rmi://127.0.0.1:1099/exploit} Ex

Zhuang Ma 2 Dec 14, 2021
Apache Maven artifacts for bootstrapping new open-source projects

OSS Quickstart Apache Maven archetypes for bootstrapping new open-source projects. Think Maven Quickstart Archetype and friends, but more modern, comp

ModiTect 49 Dec 31, 2022
CVE-2021-44228 - Apache log4j RCE quick test

Build ./build.sh Start log4j RCE Server ./start-log4j-rce-server.sh Test Run java -cp log4j-rce-1.0-SNAPSHOT-all.jar log4j Check if you get logs in ha

Jeffrey Li 3 Feb 1, 2022
Some tools to help mitigating Apache Log4j 2 CVE-2021-44228

JndiLookup Some tool to help analyzing Apache Log4j 2 CVE-2021-44228 This tool uses the "lookup" feature from log4j-2 to test against the JNDI vulnera

Daniel Fages 3 Dec 18, 2021
Mirror of Apache Velocity Engine

Title: Apache Velocity Engine Apache Velocity Welcome to Apache Velocity Engine! Apache Velocity is a general purpose template engine written in Java.

The Apache Software Foundation 298 Dec 22, 2022
The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types.

Apache Commons CSV The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types. Documentation More i

The Apache Software Foundation 307 Dec 26, 2022
Modular Apache commons compress

Kala Compress This project is based on Apache Commons Compress. Kala Compress has made some improvements on its basis: Modularization (JPMS Support),

Glavo 6 Feb 22, 2022
LOQUI - Real-time chat application built using Apache Kafka, Java, Spring Boot, SockJS and React

LOQUI is a simple real-time chat application that demonstrates how to use Apache Kafka as a message broker along with Java, Spring Boot and React on the front-end

Castanho Correia 2 Jun 5, 2022
PoC for CVE-2021-31805 (Apache Struts2)

CVE-2021-31805 PoC for CVE-2021-31805 (Apache Struts2) CVE-2021-31805の解説記事で使用したアプリケーションです。 セットアップ $ docker-compose build $ docker-compose up -d 動作確認

null 4 May 21, 2022
A webshell application and interactive shell for pentesting Apache Tomcat servers.

Apache Tomcat webshell application for RCE A webshell application and interactive shell for pentesting Apache Tomcat servers. Features Webshell plugin

Podalirius 61 Jan 1, 2023
Apache/Alibaba Dubbo <= 2.7.3 PoC Code for CVE-2021-25641 RCE via Deserialization of Untrusted Data; Affects Versions <= 2.7.6 With Different Gadgets

The 0xDABB of Doom - CVE-2021-25641-Proof-of-Concept Apache/Alibaba Dubbo <= 2.7.3 PoC Code for CVE-2021-25641 RCE via Deserialization of Untrusted Da

Dor Tumarkin 51 Apr 24, 2022
Codebase for talk on Spring I/O 2022 in Barcelona about Spring for Apache Kafka

Spring I/O Barcelona 2022 - Spring Kafka beyond the basics Codebase for my talk on Spring I/O 2022 in Barcelona about Spring for Apache Kafka Slides P

Tim van Baarsen 18 Dec 24, 2022
A webshell application and interactive shell for pentesting Apache Tomcat servers.

Apache Tomcat webshell application for RCE A webshell application and interactive shell for pentesting Apache Tomcat servers. Features Webshell plugin

Podalirius 56 Aug 7, 2022
Source code of Spring boot + Apache Kafka Udemy Course

Spring Boot + Apache Kafka - The Quickstart Practical Guide- Udemy course Course link: https://www.udemy.com/course/spring-boot-and-apache-kafka/?refe

Ramesh Fadatare 24 Dec 21, 2022