MassTransit:发布事件创建了一个名为 fully namespace interface 的附加主题
MassTransit: publishing a event created an additional topic named fully namespace interface
我有以下事件
public class MyEvent:BaseEvent
{
}
public interface BaseEvent
{
}
当我像下面这样使用公共交通工具发布时
var busControl = Bus.Factory.CreateUsingAzureServiceBus(
cfg =>
{
cfg.Host(
new Uri(serviceBusUri),
h =>
{
h.OperationTimeout = TimeSpan.FromSeconds(5);
h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(sharedAccessKeyName, sharedAccessKey, tokenTimeToLive, TokenScope.Namespace);
});
cfg.UseRetry(r => r.None());
});
var message= new MyEvent();
await this._busControl.Publish(message, typeof(MyEvent));
它创建了一个名为 BaseEvent 的额外主题。是否符合预期?
MassTransit 将创建主题以匹配 class/interface 层次结构以支持多态消息路由到队列。作为派生类型发布的消息将自动将消息转发到更高级别的类型主题。然后通过将消息转发到队列的订阅将接收端点队列绑定到适当的主题。
它类似于 RabbitMQ 的工作方式,不同之处在于 Azure 使用订阅转发给其他 topics/queues。
我有以下事件
public class MyEvent:BaseEvent
{
}
public interface BaseEvent
{
}
当我像下面这样使用公共交通工具发布时
var busControl = Bus.Factory.CreateUsingAzureServiceBus(
cfg =>
{
cfg.Host(
new Uri(serviceBusUri),
h =>
{
h.OperationTimeout = TimeSpan.FromSeconds(5);
h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(sharedAccessKeyName, sharedAccessKey, tokenTimeToLive, TokenScope.Namespace);
});
cfg.UseRetry(r => r.None());
});
var message= new MyEvent();
await this._busControl.Publish(message, typeof(MyEvent));
它创建了一个名为 BaseEvent 的额外主题。是否符合预期?
MassTransit 将创建主题以匹配 class/interface 层次结构以支持多态消息路由到队列。作为派生类型发布的消息将自动将消息转发到更高级别的类型主题。然后通过将消息转发到队列的订阅将接收端点队列绑定到适当的主题。
它类似于 RabbitMQ 的工作方式,不同之处在于 Azure 使用订阅转发给其他 topics/queues。