2012-08-13 89 views
0

我们有一些在客户端运行的CRUD Web应用程序,我们需要实施一个审计系统来跟踪用户在这些产品中所做的更改。审计!如何为多个应用程序实现集中的审计服务?

例:

  • 用户ABC创建了一个新的交易(以行业应用)
  • 用户DEF变化应对与ID为123的客户的信息(客户应用程序)

我考虑一个基于事件的解决方案和一个消息队列,在这个解决方案中,当任何用户做出更改时,我们所有的服务都会发布消息,审计服务将成为所有这些消息的订阅者。

一些这种模式的优点:

  • 老服务将有细微的变化(库将开始 发布消息)
  • 所有审计逻辑和数据将在一个单一的项目进行集中

你们怎么看待这种方法,我应该记住什么?

回答

1

Hy 你在NserviceBus下标记了这个,所以我打算从NServiceBus的角度回答。这个想法非常简单,用NServiceBus来实现。如果您应用发布并订阅NServiceBus,您可以免费进行审计。只需在配置中指定审核队列即可。

<!-- You can control the TimeToBeREceived on messages going to the audit queue --> 
<!-- by using the TimeToBeReceivedOnForwardedMessages setting --> 
<UnicastBusConfig ForwardReceivedMessagesTo="[email protected]" > 
    <MessageEndpointMappings> 
    <!-- rest of your configuration here --> 
    </MessageEndpointMappings> 
</UnicastBusConfig>