我们迁移到.NET Core,并使用dotnet CLI运行了一系列服务。迁移之后,我们所有的临时队列都被命名为<hostname>_dotnet_bus...
。
这有点烦人,因为要弄清楚一些错误和跳过的消息来自哪个服务是很困难的。
我认为,有两种选择:
第二个选项非常简单,这是我当前的本地构建方法:
https://github.com/MassTransit/MassTransit/commit/16b884cf6abd08eb8f699667a22fc5e7542bba77
这是否应视为问题并在MassTransit的Github问题跟踪器上提出?有想法吗?
答案 0 :(得分:2)
我认为端点定义应该可以解决问题。
class YourAssemblyEndpointDefinition :
DefaultEndpointDefinition
{
public HubEndpointDefinition()
: base(true)
{
}
public override string GetEndpointName(IEndpointNameFormatter formatter)
{
return formatter.TemporaryEndpoint($"{typeof(YourType).Assembly.GetName()}");
}
}
然后您可以像下面这样在端点注册中使用它:
configurator.ReceiveEndpoint(new YourAssemblyEndpointDefinition(), ...)
您可以在这里看到它的使用情况:https://github.com/MassTransit/MassTransit/blob/develop/src/MassTransit.SignalR/MassTransitSignalRConfigurationExtensions.cs
已更新
如果要为req / resp自定义总线名称,则可以使用此替代:
return Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.OverrideDefaultBusEndpointQueueName("your_assembly_name")
// your other config
});