-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
[Feature Request]: Support Reading from Solace message broker #31440
Comments
.take-issue |
@bzablocki can you also send the design doc to the Beam dev list @kennknowles FYI |
Good point, email sent. |
|
project init: #31566 |
@bzablocki Very cool to see Solace related development in Beam! We are using Solace and Beam together for ~3 years now and we've been on a journey... the connector made by Solace (https://github.com/SolaceProducts/solace-apache-beam) is not maintained anymore, so we switched to JMS IO but that has its own issues... so we have to patch JmsIO for our use cases. If you have time, you could take a look at my comments here, might be useful to have more view on the use cases: In general, the pain points with JmsIO are:
Anyway, those are just some random thoughts, hopefully useful :) For now I am maintaining my custom patches and hope to one day upstream them (no time until now). Hopefully when SolaceIO is ready, we can switch to it and all our problems will be magically solved ;) #nopressure |
Hi @ppawel! Responding to your pain points:
I'll post a message here when it gets published and I'd love to hear your feedback when you test it. Let's stay in touch. Cheers, |
Hey @bzablocki So I am now looking forward to try out the SolaceIO ASAP. I think I will check what is cooking on the I will come back with any feedback I might have. Pawel |
Should we close this? Would anyone be intrested in trying this IO on an ongoing release candidate and voting on the beam release thread: https://lists.apache.org/thread/1wstfv1psvm5lxkwqrd26dfhgn9ytmqc ? |
Hi @ppawel, the connector will be released with Beam 2.58 in the coming weeks, but the version on master is ready to use. Feel free to try the connector out and share any feedback you have. I also encourage you to vote in the release thread @tvalentyn mentioned if the connector works as expected. @tvalentyn let me merge one small PR that I just added and I'll be able to close this issue. Thanks! |
OK, thanks for the update. I plan to start testing it in our project today. Just a quick question regarding the write/publish support - I see the work has just started on that part, so it probably won't be released with 2.58? |
Correct. We have #31905 to track progress for the write connector and we expect that it will be released with 2.59 in a few weeks time :) |
I just plugged in SolaceIO into our project, and overall looks good so far, but I ran into an issue when trying to run all our tests: com.solacesystems.jcsmp.JCSMPErrorResponseException: 503: Too Many Connections For VPN The smfclient id reached over 500 - it seems that the pipelines in our tests are not closing the Solace connections properly when using SolaceIO (with JmsIO this works fine). We are using the following to stop the streaming pipeline in test teardown:
Is there anything additional to be done with SolaceIO? I will look deeper in our code, maybe test code is leaking connections somewhere but otoh, with JmsIO it is working fine. |
I tried capping max connections with SolaceIO to 5 but it still runs into the limit on the broker, just a bit slower... Had a quick look at JmsIO and one thing jumped out - it implements the Perhaps that helps with keeping the connections from blowing up as I imagine it would close them on garbage collection, although I'm not sure in which circumstances the normal |
I assume you set the |
Yes, exactly. |
Which runner are you using? |
DirectRunner + Solace in a Docker container. |
Thanks, I think I see the issue. It looks like the DirectRunner is mishandling connections by frequently closing and recreating them, causing an increase in the connection count. This is unexpected and I will investigate it as soon as possible. In contrast, DataflowRunner maintains long-lasting connections and the number of connections is stable. PS. would you mind sharing how you check the number of connections in Solace? |
Normally I just look at the logs from In this case I also checked the Solace UI, the VPN clients dashboard view: |
Thanks. I think I found it. The DirectRunner will sometimes close the session, see the source. This means that you will see an increasing number of clients in the logs, because every once in a while a client is closed and a new one is created in its place. |
Ah, nice! I was in fact looking at the closing code in SolaceIO and was checking JCSMP session and noticed that flow receiver instances aren't closed but for some reason I assumed they are managed by the Solace session... which is not really true I guess, even in our test code we have some consumers started and stopped/closed and we indeed call Not sure why I have not caught and reported that but in the end you found it so looking forward to testing an updated version :) |
#31965 is merged. |
What would you like to happen?
I'd like to add a native Java connector to read messages from Solace message broker. See the design doc for details: https://docs.google.com/document/d/1Gvq67VrcHCnlO8f_NzMM1Y4c7wCNSdvo6qqLWg8upfw/
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components
The text was updated successfully, but these errors were encountered: