Мой сценарий заключается в следующем:Действительно ли нужна очередь MSMQ среднего уровня?
У меня есть несколько веб-серверов, что:
- потребность общаться с бэкэнда (
IBus.Publish/IBus.Subscribe
) - потребность в общении друг с-другом (
IBus.Publish/IBus.Subscribe
)
Помимо веб-серверов, у меня есть несколько служб Windows, которые потребляют одни и те же сообщения.
Для того, чтобы сделать эту работу, у меня есть веб-серверы, отправляющие сообщения в центральный концентратор, единственной способностью которого является обернуть сообщение в новом типе сообщения и опубликовать его всем подписчикам.
Могу ли я как-то избежать этого, чтобы я мог публиковать сообщения непосредственно из веб-серверов?
EDIT (добавлен некоторый код) - Текущая ситуация:
... WebServer
_bus.Send(new Message{Body="SomethingChanged"});
... Hub
public void Handle(Message message){
_bus.Publish(new WrappedMessage{Message = message})
}
... Handlers (WebServers, WindowsServices etc)
public void Handle(WrappedMessage message){
//Actually do important stuff
}
Wanted ситуация:
... WebServer
_bus.Publish(new Message{Body="SomethingChanged"};
... Handlers (WebServers, WindowsServices etc)
public void Handle(Message message){
//Do important stuff
}
Ну, может быть, вы могли бы - но трудно сказать, чего вы на самом деле пытаетесь достичь из своего описания - может быть, вы могли бы предоставить более подробную информацию о том, что вы пытаетесь сделать? – mookid8000
Добавлен код, который может быть уточнен :) – Goblin