We are trying to find an elegant solution for reporting exceptions generated from systems across our infrastructure that's easier to operate on than viewing e-mail or checking log files. The publish/subscribe model across a service bus, would solve this problem quite neatly. Services would publish errors/events and a subsriber could filter these messages using simple pattern matching.
We've been investigating the NServiceBus project and wondered whether it would achieve our requirements, looking at the PubSub sample (http://docs.particular.net/samples/pubsub/) we noticed it did not solve the following two scenarios:
- All publishers publish the same message type
- The subscriber should not require knowledge of publisher endpoints
We have managed to achieve these requirements, but we're unsure whether the configuration is correct. The following are our solutions:
All publishers share the same subscription storage configuration (DBSubscriptionStorage), which is a shared database as descri开发者_开发知识库bed in the Subscription Storage section of the documentation http://docs.particular.net/nservicebus/messaging/publish-subscribe/
All publishers/subscribers are configured to use a distributor as described in the documentation on the nservicebus website.
We would like to know whether this is the correct implementation of the NServiceBus publish/subscribe model, or whether there might be another solution that would acheive our goals?
This has been discussed on the discussion group here:
http://nservicebus.grouply.com/message/7059
In short, you would have each node send rather than publish to a single endpoint.
Hope that helps.
You could write messages to the windows event log and use a tool like OpManger to monitor for errors / warnings in the logs.
Added benefits are OpManager can monitor processes, network ports so you can detect other failures. It also supports email alerts and has a nice WebUI.
精彩评论