话题,我要像在CQRS Journey在段落‘避免处理事件多次’描述来介绍一些东西,但我无法弄清楚。如何配置卤面有我使用卤面根据处理程序类型
我配置卤面使用SQL Server的运输和MongoDB的订阅和英雄传奇。 路由配置为TypeBased并将所有命令处理程序的类型映射到在Transport中配置的队列。
var bus = Configure.With(new SimpleInjectorContainerAdapter(container))
.Logging(l => l.Trace())
.Transport(t =>
{
t.UseSqlServer(connectionstring, "TestMessages", "messageQueueName");
})
.Routing(r => r.TypeBased()
.MapAssemblyOf<Assembly1.Commands.DoSomething>("messageQueueName")
.MapAssemblyOf<Assembly2.Commands.DoSomethingElse>("messageQueueName")
)
.Sagas(s => s.StoreInMongoDb(db, (sagaType) =>
{
return sagaType.Name;
}))
.Subscriptions(s => s.StoreInMongoDb(db, "Subscriptions"))
.Options(o =>
{
o.SetNumberOfWorkers(1);
o.SetMaxParallelism(1);
o.EnableSagaAuditing().StoreInMongoDb(db, "Snapshots");
})
.Start();
现在我应该的方式配置卤面,当命令发布的事件,这是因为许多独立的主题(虚拟或物理队列),为现有用户类型的复制。
喜欢的东西:
bus.Subscribe<Assembly1.EventHandler1>("Assembly1.EventHandler1Queue").Wait();
bus.Subscribe<Assembly1.EventHandler2>("Assembly1.EventHandler2Queue").Wait();
bus.Subscribe<Assembly2.EventHandler1>("Assembly2.EventHandler1Queue").Wait();
感谢您的帮助。
您所标记的问题与'蔚servicebus-topics'和你引用有关如何使用的文章(除其他事项外)Azure的服务总线的主题来实现的酒吧/分....但你有骗局想你的公交车使用SQL Server作为其消息队列 - 这是故意的吗? – mookid8000
我刚刚添加了该标记,因为我无法将“主题/主题”作为新标记插入 – ilcorvo