作为MassTransit和RabbitMQ的新用户,我目前正在尝试让我的ASP.NET Core服务与MassTransit配合使用。
根据这个文档中关于配置MassTransit和ASP.NET Core的部分,我无法使其正常工作。
目前(部分)Startup.cs看起来像:
services.AddMassTransit(x =>
{
x.AddConsumer<MailConsumer>();
x.AddConsumer<MailFailedConsumer>();
x.AddBus(provider => ConfigureBus(provider, rabbitMqConfigurations));
});
private IBusControl ConfigureBus(
IServiceProvider provider,
RabbitMqConfigSection rabbitMqConfigurations) => Bus.Factory.CreateUsingRabbitMq(
cfg =>
{
var host = cfg.Host(
rabbitMqConfigurations.Host,
"/",
hst =>
{
hst.Username(rabbitMqConfigurations.Username);
hst.Password(rabbitMqConfigurations.Password);
});
cfg.ReceiveEndpoint(host, $"{typeof(MailSent).Namespace}.{typeof(MailSent).Name}", endpoint =>
{
endpoint.Consumer<MailConsumer>(provider);
});
cfg.ReceiveEndpoint(host, $"{typeof(MailSentFailed).Namespace}.{typeof(MailSentFailed).Name}", endpoint =>
{
endpoint.Consumer<MailFailedConsumer>(provider);
});
});
在启动时,RabbitMQ会自动创建交换机,但我预期没有将任何队列绑定到该交换机。调用我的API端点后,我可以看到交换机上有活动,但由于没有队列,消费者当然不会执行任何操作。 我缺少哪个(显而易见的)部分?