【问题标题】:MassTransit rabbitMq - Why are all my messages skippedMassTransit rabbitMq - 为什么我的所有消息都被跳过
【发布时间】:2021-01-25 15:30:06
【问题描述】:

我正在开发一个 .net core 3.1 应用程序,由于某种原因我的消息没有被使用。

服务配置:

services.AddMassTransit(x =>
        {
            x.AddConsumer<ItemAddedConsumer>();
            x.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                cfg.UseHealthCheck(provider);
                cfg.Host(new Uri($"rabbitmq://{rMqSettings.host}:{rMqSettings.port}"), h =>
                               {
                                   h.Username(rMqSettings.username);
                                   h.Password(rMqSettings.password);
                               });
                cfg.ReceiveEndpoint("items-service.ItemAdded", ep =>
                {
                    ep.ConfigureConsumeTopology=false;
                    ep.Bind("ItemAdded");
                    ep.PrefetchCount = 15;
                    ep.Consumer<ItemAddedConsumer>(provider);
                });

消费类:

public class ItemAddedConsumer : IConsumer<ItemAdded>
{
    private readonly IMediator _mediator;

    public ItemAddedConsumer(IMediator mediator)
    {
        _mediator = mediator;
    }

    public async Task Consume(ConsumeContext<ItemAdded> context)
    {
        await _mediator.Send(new ItemAdded(context.Message.Id));
    }
}

这就是我发送消息的方式:

            Uri uri = new Uri("exchange:ItemAdded?bind=true&queue=items-service.ItemAdded");
            var endPoint = await _bus.GetSendEndpoint(uri);
            await endPoint.Send(@event);

所有消息都被发送到一个名为 items-service.ItemAdded_skipped 的新队列 queues

【问题讨论】:

    标签: rabbitmq asp.net-core-3.1 masstransit


    【解决方案1】:

    确保发送的消息和消费者使用相同的消息类型,包括命名空间as outlined in the docs

    另外,为什么发送端点地址和接收端点配置过于复杂?您可以更改消息的 EntityName(通过属性或发布拓扑)并简单地使用来自您的消息生产者的 Publish。

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      相关资源
      最近更新 更多