【问题标题】:MassTransit AzureServiceBus generated queuesMassTransit AzureServiceBus 生成的队列
【发布时间】:2017-08-11 14:40:20
【问题描述】:

我有一个托管在 Azure Service Fabric 解决方案中的 MT 设置的有效配置。

我有一个发送消息的 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-test 队列并发送:

var p = await _bus.GetSendEndpoint(new Uri("sb://xxxxx.servicebus.windows.net/fabric-test"));

await p.Send(new TestMessage(Guid.NewGuid()));

这一切都很好 - 但是。

当我查看 azure 门户时,我可以看到已创建 3 个队列和 1 个主题:

  • desktopmmd2jga_stateless1_bus_qypoyyypboqbzhk5bdkg665cyh(队列)
  • desktopmmd2jga_webapi1_bus_qypoyyypboqbsitfbdkg665pdd(队列)
  • 织物测试(队列)
  • xxxxx.core.testmessage(主题)

虽然这一切都工作我想知道这一切是什么?

【问题讨论】:

    标签: azure-service-fabric azureservicebus masstransit


    【解决方案1】:

    stateless1 是您的服务结构总线实例,即为该总线创建的临时队列。 webapi1 是您的 web api 总线实例,用于发送到无状态服务,也是一个临时队列。 fabric-test 是接收端点的服务队列。 namespace.core.testmessage 是您的消息类型,由您的服务端点订阅。

    这一切都是由 MassTransit 构建的,以支持您正在使用的消息结构。临时队列在 5 分钟后消失,不用担心——它们只是为了解决和维护与 ASB 的连接。

    主题是在该类型的消息发布时创建的,以便您的服务端点接收它。如果您不想为特定服务端点订阅消息类型的主题,您可以在该端点的配置中指定 SubscribeMessageTopics = false。`

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多