该警告确实建议阅读文档,但当前文档建议在配置需要DI支持的使用者时使用LoadFrom。当前使用.net核心依赖注入。找不到允许DI的Consumer方法。
这继续起作用。只是让我感到紧张。
cfg.ReceiveEndpoint(host, "adjudication-api", e =>
{
e.PrefetchCount = 16;
e.UseMessageRetry(x => x.Interval(2, 100));
e.LoadFrom(provider);
});
指导将不胜感激。
答案 0 :(得分:2)
尽管仍支持使用LoadFrom
,但不鼓励使用它,因为它实际上会促进一种非常不好的做法,将您的所有蛋都放在一个篮子里。我经常遇到在单个队列中有数十个消费者的开发人员,而这些消费者都不相关。重要的是,将消费者分布在多个队列中,以避免瓶颈,代理上的流量分开并更好地了解系统。
代替使用LoadFrom
,请考虑以下方法:
cfg.ReceiveEndpoint(host, "adjudication-api", e =>
{
e.PrefetchCount = 16;
e.UseMessageRetry(x => x.Interval(2, 100));
e.Consumer<AdjudicationConsumer>(provider);
});
然后,如果您有另一个负责报销的消费者,请为其创建一个单独的端点:
cfg.ReceiveEndpoint(host, "reimbursement-api", e =>
{
e.PrefetchCount = 16;
e.UseMessageRetry(x => x.Interval(2, 100));
e.Consumer<ReimbursementConsumer>(provider);
});
使用这种方法,使用者分散在多个队列(接收端点)中。