在WCF中批处理消息?
这是我的场景。。。我将接收来自外部来源的单个消息流。这些数据的性质以及我必须对它们进行的处理是这样的:我可以在一批中包含的消息越多,我平均可以处理的消息就越多。举个例子:在WCF中批处理消息?,wcf,Wcf,这是我的场景。。。我将接收来自外部来源的单个消息流。这些数据的性质以及我必须对它们进行的处理是这样的:我可以在一批中包含的消息越多,我平均可以处理的消息就越多。举个例子: 消息1进入时,WCF服务开始处理该消息 消息2和3在步骤1完成处理之前出现。过程2和3一起进行 这里显然有一些假设,即我们不能在步骤1完成之前开始处理步骤2,但我们可以在一次运行中处理多条消息 我最初的想法是简单地使用msmq绑定,以便在一个批处理过程中消息可以排队。但后来我意识到WCF只会一次一条地传递每条消息。我甚至不确定
当然,您可以将消息信封(基本上是作为参数传递给OperationContract方法的类型)设计为1到N条消息的容器。这肯定会通过最小化消息数量来优化字节的传递。但是,无论一条消息到达还是N条消息同时到达,都不会改变正确处理这些消息所需的逻辑,除非添加某种循环来迭代N条消息。您愿意考虑MSMQ的事实表明,您的消息传递范式已经是异步的,因此它应该与我描述的最大化吞吐量的方法很好地结合。使用WCF进行消息交换,并在单独的线程中使用处理器处理数据。WCF服务接收每条消息时,将消息放入服务和处理器共享的队列中。处理器从队列中运行。确保同步对队列的访问。