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

Connecting multiple buses to Fleet Manager in one process. #1

Closed
levirak opened this issue Mar 28, 2019 · 3 comments
Closed

Connecting multiple buses to Fleet Manager in one process. #1

levirak opened this issue Mar 28, 2019 · 3 comments
Assignees
Labels
feature New feature or request

Comments

@levirak
Copy link

levirak commented Mar 28, 2019

I'm in the process of investigating what it would take for us to use Fleet Manager with our current setup, but I'm running onto a pretty big problem: we can't find a good way to connect more than one bus per process to Fleet Manager.

What I gather is that Rebus.FleetManager makes use of a buffer directory to queue up messages and store some auxiliary data. The problem is that each instance of a bus that has Fleet Manager enabled apparently expects total control of that directory for its entire lifetime. The effect of this is that we cannot use more than one bus in a single process without giving them separate directories.

And while we can change the buffer directory, how we use our buses makes it hard to ensure that each bus gets a unique buffer directory and gets the same directory every time. While we could do this assignment manually, we're looking for a more robust solution.

Do you have any suggestions on how to handle connecting multiple buses in the same process to Fleet Manager?

@mookid8000 mookid8000 self-assigned this Mar 29, 2019
@mookid8000
Copy link
Member

Yes! (but you'll have to wait a while for it)

I'm currently in the process of moving the HTTP forwarder part of the FM driver out and into an instance-per--URL-and-API-key model. This would mean that each forwarding buffer would be shared among all in-process Rebus instances sharing the same FM URL and API key.

This is not a big change, but it requires some pretty strict control of keeping track of how many buses are using a buffer, so that it can be properly flushed when the last bus shuts down.

I can't say how long it will take for this to be finished, but if you're interested in trying it out, I'd be happy to keep you in the loop and provide you with a prerelease or two to try.

@mookid8000 mookid8000 transferred this issue from rebus-org/Rebus Aug 30, 2019
@mookid8000 mookid8000 added the feature New feature or request label Aug 30, 2019
@mookid8000
Copy link
Member

When re-visiting the local buffering mechanism, maybe this PR has been merged? If so, maybe it would make sense to use FASTER log instead of the self-made buffering thing....?

@mookid8000
Copy link
Member

File-based buffering has now been removed, drastically simplifying running multiple Rebus instances in the same process! 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants