我正在进行以下实现:
有一个用于管理几个实体的应用程序,如公司、客户等。这些数据需要由另一个应用程序来处理。其基本思想是使用message(RabbitMq)通过MassTransit实现一个Pub/Sub模型。将使用这些消息的应用程序是一个ReceiveEndpoints 6,并且我正在试图找出如何正确配置AspNetCore,因为我刚开始使用消息.
这就是我到目前为止..。
services.AddMassTransit(busCfg =>
{
busCfg.AddConsumers(typeof(TheAssemblyThatContainsTheMessageSignatures).Assembly);
busCfg.UsingRabbitMq((context, cfg) =>
{
// OPTION 1:
// ONE ReceiveEndpoint (queue) for all messages.
cfg.ReceiveEndpoint("MyCompany.MyServiceName", e =>
{
e.ConfigureConsumer<CompanyCreatedConsumer>(context);
e.ConfigureConsumer<CompanyUpdatedConsumer>(context);
e.ConfigureConsumer<ClientCreatedConsumer>(context);
e.ConfigureConsumer<ClientUpdatedConsumer>(context);
e.ConfigureConsumer<OtherEntityCreatedOrUpdatedConsumer>(context);
});
// OPTION 2:
// A ReceiveEndpoint per entity-type.
cfg.ReceiveEndpoint("MyCompany.MyServiceName.Company", e =>
{
e.ConfigureConsumer<CompanyCreatedConsumer>(context);
e.ConfigureConsumer<CompanyUpdatedConsumer>(context);
});
cfg.ReceiveEndpoint("MyCompany.MyServiceName.Client", e =>
{
e.ConfigureConsumer<ClientCreatedConsumer>(context);
e.ConfigureConsumer<ClientUpdatedConsumer>(context);
});
cfg.ReceiveEndpoint("MyCompany.MyServiceName.OtherEntityCreatedOrUpdated", e =>
{
e.ConfigureConsumer<OtherEntityCreatedOrUpdatedConsumer>(context);
});
// OPTION 3????
});
});发布于 2022-04-14 12:38:10
遵循文档,只需使用ConfigureEndpoints。你试图想出一个解决办法,只会分散你的注意力。
MassTransit已经知道如何根据使用者名称配置接收端点,所以只需使用它即可。
https://stackoverflow.com/questions/71865833
复制相似问题