Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#1190] Apache TubeMQ (InLong) Adapter & Sink #1191

Merged
merged 10 commits into from
Feb 3, 2023

Conversation

SteveYurongSu
Copy link
Member

Background

Apache TubeMQ (now is a submodule of Apache Inlong) is a trillion-records-scale distributed messaging queue (MQ) system, focuses on data transmission and storage under massive data. Compared to many open source MQ projects, TubeMQ has unique advantages in terms of stability, performance, and low cost.

It offers a variety of features:

  • Pluggable transport protocols, such as TCP, SSL
  • Support big-data and streaming ecosystem integration
  • Message retroactivity by time or offset
  • Efficient pull and push consumption model
  • Flexible distributed scale-out deployment architecture
  • Feature-rich administrative dashboard for configuration
  • Authentication and authorization

For more information:

Approach

Connect Adapter:
Introduce the TubeMQProtocol for reading data from TubeMQ brokers.

Sink:
Introduce the TubeMQPublisherSink for writing data to TubeMQ brokers.

Remarks

PR introduces (a) breaking change(s): <yes/no>
no

PR introduces (a) deprecation(s): <yes/no>
no

@bossenti bossenti added this to the 0.91.0 milestone Jan 31, 2023
@bossenti bossenti added enhancement New feature or request java Pull requests that update Java code pipeline elements Relates to pipeline elements connect Related to the `connect` module (adapters) labels Jan 31, 2023
Copy link
Contributor

@tenthe tenthe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the PR.
I added a minor comment, but this is a rather small change.

One more hint. For sinks we have a newer API StreamPipesDataSink, this requires only one class instead of three. Here are two example [1], [2].

This can also be addressed later, the requested changes for the PR are only related to the wrong service name.

[1] https://github.com/apache/streampipes/blob/dev/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeSink.java
[2] https://github.com/apache/streampipes/blob/dev/streampipes-extensions/streampipes-sinks-brokers-jvm/src/main/java/org/apache/streampipes/sinks/brokers/jvm/pulsar/PulsarPublisherSink.java

@SteveYurongSu
Copy link
Member Author

SteveYurongSu commented Feb 1, 2023

@tenthe Thanks a lot for the reviewing!

Sorry for the wrong service name. I have fixed them.

One more hint. For sinks we have a newer API StreamPipesDataSink, this requires only one class instead of three. Here are two example [1], [2].

Yes, this time I already implemented TubeMQPublisherSink based on the latest API StreamPipesDataSink. The implementation experience was much better :)

Copy link
Contributor

@bossenti bossenti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks a lot for your contribution @SteveYurongSu 🙏🏼
Impressive how far you got on your own!
How was your experience with the extensibility of StreamPipes for adapters and sinks? Did you get the required information easily?


Consumes messages from an Apache TubeMQ broker.

***
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not directly required, but it would be awesome if you could add a short descriptionof the input parameters here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point! Description is added :D

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot 🙏🏼

Copy link
Member

@dominikriemer dominikriemer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thank you!

@SteveYurongSu
Copy link
Member Author

How was your experience with the extensibility of StreamPipes for adapters and sinks? Did you get the required information easily?

Overall, the experience was very good.

I mainly got the necessary information from the following two links:

In addition, I have to say that streampipes are too suitable for iot developers! I'm going to contribute some more code related to the IoTDB eco :)

@bossenti
Copy link
Contributor

bossenti commented Feb 2, 2023

Glad to hear!
That would be awesome 🤩
We really appreciate your contributions ❤️

Copy link
Member

@vesense vesense left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nick work! Thanks @SteveYurongSu

@bossenti bossenti merged commit 849e431 into apache:dev Feb 3, 2023
@SteveYurongSu SteveYurongSu deleted the tubemq branch February 19, 2023 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
connect Related to the `connect` module (adapters) enhancement New feature or request java Pull requests that update Java code pipeline elements Relates to pipeline elements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants