Getting Started
Architecture
NServiceBus
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Routing system extensibility points for MSMQ

Component: MSMQ Transport
NuGet Package: NServiceBus.Transport.Msmq (2.x)
Target Version: NServiceBus 8.x

Instance mapping extensibility

To customize how logical endpoints are mapped to a physical instance when routing messages, use the following code in a feature:

protected override void Setup(FeatureConfigurationContext context)
{
    var endpointInstances = context.Settings.Get<EndpointInstances>();
    endpointInstances.AddOrReplaceInstances("MySource",
        new List<EndpointInstance>
        {
            new EndpointInstance("MyEndpoint").AtMachine("VM-1"),
            new EndpointInstance("MyEndpoint").AtMachine("VM-2")
        });
}

sourceKey uniquely identifies the mapping source so that it can be modified and must be unique.

The entire source will be replaced by the code above so all known instance mappings must be added.

The instances collection is thread-safe. It allows registering multiple instance of a given endpoint. In case there is more than one mapping for a given logical endpoint, messages will be distributed based on the active distribution strategy.

Related Articles