MassTransit Consumer 不消费服务总线主题消息

问题描述 投票:0回答:1

我们使用 MassTransit 生成消息并写入 Azure 服务总线,并且我们有一个消费者,它是使用相同的包编写的来消费消息,但无法消费消息。

消费者在本地计算机中也没有受到影响,并且 Azure 服务总线或日志中没有理由显示任何类型的信息或错误

我们尝试过

  • 升级MassTransit配套。
  • 使用 UseRawJsonSerilizer() 来 消费者配置,这有助于吸引消费者,但是 message.entity 属性变为 null,因此这没有帮助 还有。
  • 也使用NewtonsoftJsonSerializer(),这也不是 帮助打击消费者。

我们已经配置了消费者并正确创建了消费者。

我们在Program.cs中的ConfigureServices中编写了以下部分代码来添加服务并启动服务总线

builder.Services.AddMassTransit(x =>
{
    x.AddConsumer<CrmCatalogCreatedEventConsumer>();

    x.UsingAzureServiceBus((context, cfg) =>
    {
        cfg.Host(massTransitOptions.AzureServiceBusConnectionString);
        cfg.UseConsumeFilter(typeof(LogConsumeFilter<>), context);
        ConfigureMessageType<CrmCatalogCreatedEventConsumer, ICrmCatalogCreatedEvent>(context, cfg);
    });
});

我们编写了一个单独的方法来配置消费者,如下所示

private static void ConfigureMessageType<TConsumer, TMessageType>(IBusRegistrationContext context, IServiceBusBusFactoryConfigurator busCfg)
    where TConsumer : class, IConsumer<TMessageType>
    where TMessageType : class
{
    var topicName = GetTopicName<TMessageType>();
    busCfg.Message<TMessageType>(cfg =>
    {
        cfg.SetEntityName(topicName);
    });
    busCfg.SubscriptionEndpoint("_subscriptionName", topicName, cfg =>
    {
        cfg.ConfigureConsumer<TConsumer>(context);
    });
}

我们几乎没有其他主题的其他消费者,这些主题运行良好,而这个则不然

masstransit azure-servicebus-topics
1个回答
0
投票

问题已解决。 问题是因为消费者使用了错误的命名空间

© www.soinside.com 2019 - 2024. All rights reserved.