2012-08-13 41 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>