1

我正在 MAC OS X Lion (10.7.4) 上开发 WSO2 ESB 4.0.3

我想知道 WSO2 ESB 4.0.3 开发的最佳实践是什么。

目前我正在其中使用数据服务功能,并且我们正在尝试移植到 WSO2 ESB 的现有 tomcat 应用程序在 2-3 秒内执行 SQL 查询,而具有数据服务功能的 WSO2 ESB 4.0.3 大约需要 16-17 秒.

如果有人可以让我知道 WSO2 的最佳实践,特别是 XSLT 转换,我将不胜感激。

希望得到答复。

谢谢

嗨,Prabath 这是我使用 WSO2 ESB 4.0.3 和 Data Services Feature 3.2.2 的环境。代理服务前端是 DS 服务。数据源在 datasources.properties 中定义为碳数据源。我尝试在 WSO2 Data Services Server 2.6.3 中运行相同的服务,其性能与现有的 tomcat 应用程序相当,但带有 Data Services Feature 3.2.2 的 ESB 4.0.3 比 tomcat 应用程序花费的时间多 8 倍。看起来 XSLT 不是我之前认为的问题。我在调用此 DS 的代理服务中有所有错误处理和输入验证。我也尝试将其更改为本地以进行传输,但仍然存在相同的性能问题。此外,我必须确保在端点定义中转发的 XML 的格式是 SOAP 12,否则代理服务不会通过本地传输转发。您能否建议我可以将 WSO2 ESB 与 Data Services Feature 3.2.2 一起使用并获得可比的性能?

帮助真的很感激。谢谢阿比吉特

嗨,普拉巴斯

谢谢您的回复。

代理服务验证和转换不是问题。查看日志,在 ESB 中部署的具有数据服务功能的数据服务似乎比 tomcat 应用程序花费的时间多 8 倍。所以我认为这是数据服务功能的问题,而不是代理服务。

即使我们删除了您将在其中进行输入验证和错误处理的代理服务?

请告诉我。谢谢阿比吉特

4

2 回答 2

0

我希望普拉巴斯已经回答了你的问题。

但是,不建议使用这些中介来执行非常复杂的查询,例如带有“OUT 和 INOUT”参数的存储过程等,因为 WSO2 DSS 专门设计用于服务于任何类型的复杂查询。然而,这(使用数据服务)是以网络延迟为代价的。因为,您正在通过网络调用数据服务端点,这显然会增加完成任务所需的端到端时间的网络延迟。但是,如果您使用 WSO2 ESB 中安装的数据服务功能,您始终可以选择使用“本地”传输而不是“http/https”,后者会执行 JVM 内调用,因此不会通过网络。

于 2015-03-02T04:54:44.520 回答
0

阿比吉特,

我不太清楚这个问题是否与使用 dbReport/dbLookup 中介执行 SQL 与在 ESB 中安装数据服务功能或在 ESB 层使用 XSLT 转换响应与在 DSS 层执行相同的事情有关。

如果是前者,那么您应该能够有效地使用 db mediator 对(即 dbLookup 和 dbreport)来执行简单的 SQL 查询,例如 SELECT、INSERT、UPDATE、DELETE 等。但是,不建议使用这些调解器执行许多复杂的查询,例如具有“OUT 和 INOUT”参数的存储过程等,因为 WSO2 DSS 专门设计用于服务于任何类型的复杂查询。然而,这(使用数据服务)是以网络延迟为代价的。因为,您正在通过网络调用数据服务端点,这显然会增加完成任务所需的端到端时间的网络延迟。但是,如果您使用 WSO2 ESB 中安装的数据服务功能,则始终可以选择使用“本地”传输而不是“http/https”

如果这与后者有关,也就是说,如果您参考 XSLT 转换,我相信这样做没有那么硬和快速的规则,这完全取决于您的要求和用例。例如,如果您只使用 WSO2 DSS 并希望将某些请求转换为客户端期望的特定格式,那么您只需在 WSO2 DSS 层完成它就足够了。因为,仅为了完成 XSLT 转换而将其分派到 ESB 中,会给您的任务的端到端完成时间增加额外的不必要的开销。另一方面,如果您将其作为 ESB 端配置流的一部分来执行,那么在流本身内部使用 XSLT 调解器之类的东西是完全可以的。

希望这可以帮助!

问候。普拉巴斯

于 2012-09-08T04:31:56.433 回答