Skip to content

Instantly share code, notes, and snippets.

@ramonsmits
Last active April 17, 2018 19:09
Show Gist options
  • Select an option

  • Save ramonsmits/4d02d3f2d13ecc1af32a462fa1858867 to your computer and use it in GitHub Desktop.

Select an option

Save ramonsmits/4d02d3f2d13ecc1af32a462fa1858867 to your computer and use it in GitHub Desktop.
NServiceBus - File based routing (FBR) & Sender side distribution (SSD) shared configuration
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="NServiceBus/ErrorAddress" value="error"/>
<add key="NServiceBus/AuditAddress" value="audit"/>
<add key="NServiceBus/InstanceMappingFile" value="instances.xml"/>
<add key="NServiceBus/RouteMappingFile" value="routes.xml"/>
<add key="NServiceBus/MonitoringAddress" value=""/>
<!--<add key="NServiceBus/InstanceId" value="1"/>-->
</appSettings>
</configuration>
using System;
using System.Configuration;
using NServiceBus;
using NServiceBus.FileBasedRouting;
static class EndpointConfigExtensions
{
public static void SetupTransport(this EndpointConfiguration endpointConfiguration)
{
var settings = ConfigurationManager.AppSettings;
var transport = endpointConfiguration.UseTransport<MsmqTransport>();
var routing = transport.Routing();
var metrics = endpointConfiguration.EnableMetrics();
endpointConfiguration.SendFailedMessagesTo(settings["NServiceBus/ErrorAddress"]);
endpointConfiguration.ForwardReceivedMessagesTo(settings["NServiceBus/AuditAddress"]);
routing.UseFileBasedRouting(settings["NServiceBus/RouteMappingFile"]);
routing.InstanceMappingFile().FilePath(settings["NServiceBus/InstanceMappingFile"]);
metrics.SendMetricDataToServiceControl(settings["NServiceBus/MonitoringAddress"], TimeSpan.FromMilliseconds(500));
var discriminator = ConfigurationManager.AppSettings["NServiceBus/InstanceId"];
if(!string.IsNullOrEmpty(discriminator)) endpointConfiguration.MakeInstanceUniquelyAddressable(discriminator);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<endpoints>
<endpoint name="Samples.SenderSideScaleOut.Server">
<handles>
<commands assembly="Messages" />
<events assembly="Messages"/>
</handles>
</endpoint>
</endpoints>
<?xml version="1.0" encoding="utf-8" ?>
<endpoints>
<endpoint name="Samples.SenderSideScaleOut.Client">
<instance machine="N1" />
<instance machine="N2" />
</endpoint>
<endpoint name="Samples.SenderSideScaleOut.Server">
<instance machine="N1" />
<instance machine="N2" />
</endpoint>
</endpoints>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment