MassTransit rabbitMq-为什么我的所有消息都被跳过

扎维特

我正在使用.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队列的新队列

克里斯·帕特森

确保发送的消息和使用者使用的消息类型相同,包括docs中概述的名称空间

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MassTransit RabbitMq发送消息

MassTransit / RabbitMq错误队列-如何删除消息?

防止消息进入 _error 队列(masstransit、rabbitmq)

设置消息优先级 RabbitMQ/Masstransit?

Masstransit和RabbitMQ权限

MassTransit创建的RabbitMQ拓扑

使用MassTransit重新传递RabbitMq消息时,保留标题

如何使用MassTransit从RabbitMQ DeadLetter队列中检索消息?

WorkerService 使用 MassTransit 配置 RabbitMq

为什么在消息排队系统(例如MSMQ / RabbitMQ等)之上需要NService Bus / MassTransit之类的服务总线框架?

如何在.NET Core中结合使用RabbitMQ和MassTransit来正确使用消息?

如何使用 MassTransit 和 RabbitMQ 在微服务之间共享消息定义?

我们可以通过masstransit一起使用RabbitMQ和Mediatr吗?

如何在Masstransit / RabbitMQ中组织队列?

Masstransit RPC(RabbitMq)吞吐量限制

Masstransit RabbitMq PublisherConfirmation默认值

MassTransit,RabbitMQ-FIFO出队支持

未处理RabbitMQ类型异常的masstransit 3

为什么在基于微服务的应用程序中使用 MassTransit、RabbitMQ 代理和 .Net 不执行消费方法?

使用RabbitMQ的MassTransit 3.0.1(预发行版)无法使用与2.9.9相同的配置/设置来处理消息

如何使用 MassTransit for RabbitMQ 为在消费者中引发异常的消息配置交换,以便以后重用它们?

MassTransit序列化非Masstransit消息

MassTransit(RabbitMq)+ Asp.Net Core 2.1:同一项目中有多个使用者

MassTransit尝试在其关闭时无限连接到RabbitMQ

在內存中運行 MassTransit/RabbitMQ 實例

最大的系统间兼容性 - 纯 RabbitMQ 或 NServiceBus,MassTransit?

未知交换类型 'x-delay-message' RabbitMq 与 MassTransit

MassTransit.RabbitMQ-连接失败:代理无法访问

MassTransit 和 RabbitMQ,使用 DI 时使队列在重启时存活