骆驼路线审计

时间:2017-07-28 16:16:57

标签: apache apache-camel

这是一种冗长的描述,为此道歉。

我需要一个Camel路线,我们对每个步骤都有严格的审核要求,无论成功与否。

典型的路线是:

EndpointA - >队列1 - >转型 - >队列2 - > EndpointB

我们必须在每次成功提交队列后进行审核。请注意,有许多路线,如aboove,每个路线都有不同的队列名称。

一个解决方案是:

EndpointA - >队列1 - > AuditQueue - >转型 - >队列2 - > AuditQueue - > EndpointB - > AuditQueue

但解决方案看起来很糟糕,因为我必须在主要路径中放置另一个AuditQueue来解决此问题。

如果我将Queue1,Queue2等更改为主题,那么我必须编写多个使用者(我的意思是多个来自多个的路由(如from(Queue1),from(Queue2)等)以便我可以审核每个步骤中的消息。我正在寻找的是这个问题的可重用和优雅的解决方案吗?

提前致谢。

亲切的问候,  Sreejesh。

2 个答案:

答案 0 :(得分:1)

在我们的主要路线的顶部,我们使用onCompletion设施。当交换完成,成功或失败时,它总是被触发。它可以配置全局或每个路由范围。

例如

    from("direct:mainRoute").routeId("mainRoute")
        .onCompletion()
            .to("direct:completionRoute")
            .process(myCompletionProcessor)
        .end()

答案 1 :(得分:0)

检查Camel的EventNotifierSupport和ExchangeSentEvent。