rebus-org / Rebus.AzureServiceBus

:bus: Azure Service Bus transport for Rebus
https://mookid.dk/category/rebus
Other
33 stars 20 forks source link

Compatibility with netstandard/net core #6

Closed mollyporph closed 5 years ago

mollyporph commented 6 years ago

This is a collection of blockers and potential solutions for moving from WindowsAzure.ServiceBus (net45) to Microsoft.Azure.ServiceBus (1.0.0: net451, netstandard1.3. 2.0.0: net461, netstandard2.0)

With Microsoft.Azure.ServiceBus Microsoft has moved the management api to a new project: Microsoft.Azure.Management.Servicebus. This new project is an attempt by Microsoft to align the servicebus sdk to their ARM-everywhere philosophy.

This introduces a couple of issues. The first and foremost is that all management commands are executed via ARM and thus requires Azure Active Directory credentials instead of the much simpler Service Bus connectionstring. Maintainers have received the criticism and have a plan to re-introduce management APIs (follow the issue here: https://github.com/Azure/azure-service-bus-dotnet/issues/65) tl;dr They will gradually re-implement it with a goal of having it all implemented by summer 2018.

Will update with more findings

Meyce commented 5 years ago

@mpaul31 Check out the repo linked below. https://github.com/Meyce/Core-Rebus-WebJob

mpaul31 commented 5 years ago

@Meyce thank you for taking the time to set this up!

mookid8000 commented 5 years ago

I'm about to lay the finishing touches on Rebus' new Azure Service Bus driver, but in my tests I found that it would receive messages at about half the rate of the old driver.

E.g. in Rebus' Azure Service Bus prefetch performance test I would receive ~100 msg/s with the old driver, but with the new driver it would lay around ~50 msg/s.

Anyone experienced anything similar?

Meyce commented 5 years ago

I typically don't have enough messages coming through where I would notice a drop off.

mookid8000 commented 5 years ago

I did a couple of experiements yesterday, and it just seems the new driver is generally slower.

Looks like it's possible to account for it with Rebus though, simply by increasing the allowed max parallelism like this:

.Options(o => {
    o.SetMaxParallelism(100);
})

Rebus.AzureServiceBus 6.0.0-rc1 is out now ๐ŸŒฎ ๐ŸŽ‰

Meyce commented 5 years ago

RC1 is referencing Rebus(5.0.0-b14). Will the driver release with the 5.0.0 version of Rebus?

mookid8000 commented 5 years ago

Will the driver release with the 5.0.0 version of Rebus?

That's the plan, yes.

Usually, it's pretty easy to upgrade Rebus dependencies, even though they're major increments.

There has been no wire-level breaking changes since before version 2, so you can upgrade one endpoint at a time.

mookid8000 commented 5 years ago

so.... I've been running the new Azure Service Bus transport on all Fleet Manager environments for a while now, and it seems to run as it should. I'll close this one for now ๐Ÿ™‚

Meyce commented 5 years ago

Will there be a new non-rc version of Rebus.AzureServiceBus sometime soon?

mookid8000 commented 5 years ago

yeah sure ๐Ÿ˜„

mookid8000 commented 5 years ago

I've pushed Rebus.AzureServiceBus 6.0.0 to NuGet.org now โ€“ย it should become visible within a few minutes ๐ŸŽ‰ ๐ŸŽ‹