C# 基于队列的系统结构
我有一个由12个windows服务组成的系统,比如a,B。。。M.他们仅通过队列交换信息(本例中为MSMQ)。系统以线性方式工作——外部方调用A,A在B使用的队列上发布消息。比如说,输出的格式是固定的。B读取结果,进行一些处理,并将结果发布到服务C,等等 我现在遇到的问题是,管道中的服务需要上一步没有提供的数据。例如,服务F需要来自BResult的属性 我考虑过几种备选方案,但它们都有缺点:C# 基于队列的系统结构,c#,message-queue,data-exchange,C#,Message Queue,Data Exchange,我有一个由12个windows服务组成的系统,比如a,B。。。M.他们仅通过队列交换信息(本例中为MSMQ)。系统以线性方式工作——外部方调用A,A在B使用的队列上发布消息。比如说,输出的格式是固定的。B读取结果,进行一些处理,并将结果发布到服务C,等等 我现在遇到的问题是,管道中的服务需要上一步没有提供的数据。例如,服务F需要来自BResult的属性 我考虑过几种备选方案,但它们都有缺点: 把以前所有结果的字典传下去。这样说来,F将 能够阅读AResult、BResult等。问题是这将 引入高
那么问题是什么?这个问题属于这里吗?这不是编程问题,而是设计问题。在这些服务之间共享数据的好解决方案是什么?队列通常支持发布/订阅,其中一种消息类型可以由多个使用者订阅。看看msmq多播。或者,看看另一个队列服务,例如RabbitMQ,它们有所谓的扇出交换,其中一条消息被传递到多个队列。@RoyalAirForce,Quality Catalyst可能同意so指南的观点,即问题通常应该在实现级别,而不是太广泛或开放。