如何在WSO2 ESB中实现动态集成模式

时间:2018-04-04 12:23:38

标签: wso2 wso2esb

我的要求是我将 ESB 集成实现公开为REST API。

1)在实现部分中,只要他们调用此ESB API,就必须根据发送给ESB的post请求中的内容进行路由(这可以通过基于内容的路由模式来实现)。

2)但是在端点端由ESB调用哪个基于内容的路由可能会有所不同意味着,如果今天有2个端点可以调用明天它可能会升至5,如何应用更改是有任何解决方案。那么,如何实现这种动态集成。

1 个答案:

答案 0 :(得分:0)

我有4种方法可以实现这种集成模式。

1)在注册表中部署文件,该文件中包含端点,文件名与有效负载中发送的内容名称(正则表达式)相同,以便进行路由。然后通过在属性介体中存储该名称并使用concat函数在另一个属性介体中读取该文件,并通过模式匹配读取端点。因此,您可以使用该端点并实现基于动态内容的路由

2)每个人都有一个单独的序列来调用一个端点并且与内容名称具有相同的名称。主序列将根据内容调用序列。

3)将要路由的内容和端点存储在RDBMS数据库中,然后使用DB lookup mediator根据您可以路由的端点检索端点。

4)我认为这是最好的,适用于明天端点可能会发生变化的集成场景(即端点的数量不固定时),并且每个端点都希望对有效负载进行不同的转换(我的意思是XML到json或JSON到XML等..)。

首先,使用一个API并将内容存储在属性介体中,并使用该介体调用另一个具有调用端点的实现的API。

例如,如果基于哪个路由必须发生的内容具有像这样的有效载荷

  

{“content”:“c1”}

使用名称uri.var.address将内容存储在属性介体中。然后创建另一个API,它将具有调用端点的实现(对于每个端点创建单独的API),API的URI-Template应该具有存储在属性中介中的内容(与有效负载请求相同)。使用send mediator来调用这些ENDPOINT实现的API时,使用带有/ url的API的请求和/{uri.var.address},因为匹配URI模板的详细信息。