我有一个MT设置的工作配置,托管在Azure Service Fabric解决方案中。
我有一个发送消息的API和一个读取消息的无状态应用程序。
在这个无状态应用程序中,我告诉它使用TestMessage类型的消息,如下所示:
container.Register(Classes.FromThisAssembly().BasedOn<IConsumer>());
var busControl = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
var h = cfg.Host(new Uri("sb://xxxxx.servicebus.windows.net"), host =>
{
host.OperationTimeout = TimeSpan.FromSeconds(5);
host.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", "******");
});
cfg.ReceiveEndpoint(h, "fabric-test", ec =>
{
ec.UseMessageScope<ConsumeContext>();
ec.LoadFrom(_container);
});
});在API中,我指定了fabric测试队列,并使用以下方式发送:
var p = await _bus.GetSendEndpoint(new Uri("sb://xxxxx.servicebus.windows.net/fabric-test"));
await p.Send(new TestMessage(Guid.NewGuid()));这一切都很好--不过。
当我查看蔚蓝门户时,我可以看到已经创建了3个队列和1个主题:
虽然这一切都有用,但我想知道这一切是什么?
发布于 2017-03-20 13:52:18
stateless1是您的服务fabric总线实例,是为该总线创建的临时队列。webapi1是您的web总线实例,用于发送到无状态服务,也是一个临时队列。fabric-test是接收端点的服务队列。namespace.core.testmessage是您的消息类型,由服务端点订阅。
所有这些都是由MassTransit构建的,以支持您正在使用的消息结构。临时队列在5分钟后消失,不用担心--它们只是为了寻址和维护与ASB的连接。
主题是在发布该类型的消息时创建的,以便您的服务端点接收到它。如果不想订阅特定服务端点的消息类型主题,可以在该端点的配置中指定SubscribeMessageTopics = false。
https://stackoverflow.com/questions/42901571
复制相似问题