MSMQ 携带的消息是否可以有多个侦听器?
WCF 似乎在服务方面构建了一切,使通信成为点对点事务。我想使用消息队列来缓冲另一个进程的传入流量,该进程在数据库中记录日志。
可能有任何数量的其他进程对监视传入流量感兴趣,这肯定需要观察者模式,但我看不出如何表达观察者模式,至少不通过 WCF 使用 MSMQ。
谁能给我建议?
关于我为什么关心的一些背景,这也可能有助于说明问题:我有一个 Windows 服务,它接受来自现场小黑盒的连接请求。它设置套接字,黑匣子发送描述事件的消息,并在时间和空间上用 GPS 位置进行注释。
我从套接字流中解析消息包,并通过 MSMQ 将它们发送到另一个过滤重复数据包并将数据包写入数据库表的进程。
任何数量的后处理都将受益于响应传入流量的增量计算,并且用户工具也会执行用户通知以响应传入流量。
所以,我真的很想让一个进程发送消息,而几个进程接收它们。其中一个接收器负责解析数据包内容并将消息转录到数据库中;这显然是最终从队列中删除消息的责任的候选者,但问题是如何确保这是处理消息的最后一个处理程序。