使用依赖注入时的消息分区器?

如何在通过依赖注入(autofac)注册消费者时设置消息分区,像这样


 cfg.ReceiveEndpoint(host, c =>

                    {

                        c.LoadFrom(context);

                        c.Durable = true;

                    });

所有消息都具有相同的标记界面


 IDomainEvent<Guid>

我希望所有消息都按该接口的 Id 属性进行分区。


我正在考虑尝试这样的事情:


 c.Consumer<SomeViewConsumer>(context,ConfigurePartition<SomeViewConsumer>(partitioner));

 c.Consumer<SomeOtherViewConsumer>(context,ConfigurePartition<SomeOtherViewConsumer>(partitioner));



  private static Action<IConsumerConfigurator<TConsumer>> ConfigurePartition<TConsumer>(IPartitioner partitioner) where TConsumer : class

  {

        return n => n.Message<IDomainEvent<Guid>>(k => k.UsePartitioner(partitioner, consumeContext => consumeContext.Message.Id));

  }

这行得通吗?


跃然一笑
浏览 139回答 1
1回答

哔哔one

没有自动方法可以做到这一点,因为必须知道消息类型才能配置返回分区键的分区程序委托。我还担心在单个接收端点上使用太多不同的消息类型,方法是使用.LoadFrom().
打开App,查看更多内容
随时随地看视频慕课网APP