Skip to content

Conversation

@TravisNickels
Copy link
Contributor

@TravisNickels TravisNickels commented Jan 29, 2025

This pull request upgrades the RabbitMQ transport to version 10.

The new transport version brings a new requirement for ServiceControl to operate: The RabbitMQ management plugin must be enabled, and the plugin's statistics and metrics collection must not be disabled.

By default, the settings to access the API will be inferred from the connection string, but the following new connection string settings have been added if custom values are needed:

  • ManagementApiUrl
  • ManagementApiUserName
  • ManagementApiPassword

The transport also does delivery limit validation by default, but that can be controlled with the new ValidateDeliveryLimits connection string setting.

Other changes in this PR:

  • ServiceControl.Transports.RabbitMQ now has access to the transport internals, which means all the code previously duplicated from the transport has been removed.
  • The RabbitMQQuery and QueueLengthProvider classes now access the management API through the transport's management client instead of having their own custom logic.
    • The transport customization classes have been updated to allow access to the ManagementClient instance that the transport creates during initialization.
  • The separate licensing component settings to access the management API are no longer used. They have been replaced by the above mentioned connection string settings.
    • If any existing settings are found during the upgrade process, they are migrated to the connection string instead.
  • The DisableRemoteCertificateValidation and UseExternalAuthMechanism are once again working properly instead of being ignored.

Related Documentation:

@TravisNickels TravisNickels changed the title Update RabbitMQ transport connection string options Update RabbitMQ transport connection string options and add management client usage for throughput component Feb 12, 2025
@TravisNickels TravisNickels changed the title Update RabbitMQ transport connection string options and add management client usage for throughput component Update RabbitMQ transport settings and enable management client for throughput Feb 13, 2025
@bording bording force-pushed the travis/rabbitmq-management-api branch 4 times, most recently from b0161f3 to f41444c Compare February 27, 2025 16:03
@bording bording changed the title Update RabbitMQ transport settings and enable management client for throughput Update to NServiceBus.RabbitMQ 10.0.0 and use management client Feb 28, 2025
@bording bording force-pushed the travis/rabbitmq-management-api branch 2 times, most recently from 360900d to 7131ce0 Compare March 4, 2025 17:36
@bording bording force-pushed the travis/rabbitmq-management-api branch 3 times, most recently from 414b7a5 to 6ca6c1d Compare March 13, 2025 21:18
@TravisNickels TravisNickels added this to the vNext milestone Mar 14, 2025
@bording bording force-pushed the travis/rabbitmq-management-api branch from a9ae9c6 to c1e1622 Compare March 14, 2025 22:46
@bording bording marked this pull request as ready for review March 14, 2025 23:31
@bording bording merged commit 02b5230 into master Mar 14, 2025
32 checks passed
@bording bording deleted the travis/rabbitmq-management-api branch March 14, 2025 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants