WSO2 ESB特别是XSLT转换的最佳实践是什么?

时间:2012-09-06 23:51:34

标签: wso2 wso2esb wso2carbon

我正在研究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和数据服务功能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与数据服务功能3.2.2一起使用并获得可比较的性能?

帮助真的很感激。 谢谢 作者Abhijit

嗨Prabath

感谢您的回复。

代理服务验证和转换不是问题。查看日志,看起来像ESB中部署的Data Service具有数据服务功能所花费的时间是tomcat应用程序的8倍。因此,数据服务功能是我认为的问题,而不是代理服务。

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

请告诉我。 谢谢 作者Abhijit

2 个答案:

答案 0 :(得分:0)

作者Abhijit,

我不太清楚这个问题是否与使用dbReport / dbLookup调解器执行SQL相关,而不是在ESB中安装数据服务功能,或者在ESB层使用XSLT转换响应,而不是在DSS执行此操作层

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

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

希望这有帮助!

的问候。 Prabath

答案 1 :(得分:0)

我希望Prabath已经回答了你的问题。

但是,不建议使用这些调解器进行大量复杂的查询,例如存储过程与" OUT和INOUT"参数等作为WSO2 DSS专门设计用于提供任何类型的复杂查询。但是,这(使用数据服务)会以网络延迟为代价。因为,您通过网络调用数据服务端点,这显然会将网络延迟添加到完成任务所需的端到端时间。但是,如果您正在使用WSO2 ESB中安装的数据服务功能,则始终可以选择使用" local"传输而不是" http / https" ,它执行in-JVM调用,因此不会通过网络调度请求。