0

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

前任。:

  • 用户 ABC 创建了一个新交易(在交易应用中)
  • 用户 DEF 更改了 ID 为 123 的客户端的地址信息(在客户端应用程序中)

我正在考虑一个带有消息队列的基于事件的解决方案,其中我们所有的服务都会在任何用户进行更改时发布一条消息,而审计服务将是所有这些消息的订阅者。

该模型的一些优点:

  • 旧服务将有微小的变化(存储库将开始发布消息)
  • 所有审计逻辑和数据将集中在一个项目中

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

4

1 回答 1

1

你好,你在 NserviceBus 下标记了这个,所以我将从 NServiceBus 的角度回答。这个想法很好,用 NServiceBus 很容易实现。如果您使用 NServiceBus 应用发布和订阅,您将免费获得审核。只需在配置中指定审计队列即可。

<!-- You can control the TimeToBeREceived on messages going to the audit queue  -->
<!-- by using the TimeToBeReceivedOnForwardedMessages setting -->
<UnicastBusConfig ForwardReceivedMessagesTo="AuditQueue@AdminMachine" >
  <MessageEndpointMappings>
    <!-- rest of your configuration here -->
  </MessageEndpointMappings>
</UnicastBusConfig>
于 2012-08-14T04:47:44.280 回答