WSO2 ESB在特定XSLT转换中的最佳实践是什么

WSO2 ESB在特定XSLT转换中的最佳实践是什么,wso2,wso2esb,wso2carbon,Wso2,Wso2esb,Wso2carbon,我正在MAC OS X Lion 10.7.4上开发WSO2 ESB 4.0.3 我想知道WSO2 ESB 4.0.3开发的最佳实践是什么 目前,我正在it中使用数据服务功能,现有的tomcat应用程序(我们正在尝试将其移植到WSO2 ESB)在2-3秒内完成SQL查询,其中作为WSO2 ESB 4.0.3,数据服务功能大约需要16-17秒 如果有人能让我知道WSO2和特定XSLT转换的最佳实践,我将不胜感激 希望得到答案 谢谢 嗨,普拉巴斯 这就是我的环境 我正在使用WSO2 ESB 4.0.

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

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

目前,我正在it中使用数据服务功能,现有的tomcat应用程序(我们正在尝试将其移植到WSO2 ESB)在2-3秒内完成SQL查询,其中作为WSO2 ESB 4.0.3,数据服务功能大约需要16-17秒

如果有人能让我知道WSO2和特定XSLT转换的最佳实践,我将不胜感激

希望得到答案

谢谢

嗨,普拉巴斯 这就是我的环境 我正在使用WSO2 ESB 4.0.3和数据服务功能3.2.2。代理服务是DS服务的前端。数据源在datasources.properties中定义为碳数据源。 我尝试在WSO2数据服务服务器2.6.3中运行相同的服务,其性能与现有tomcat应用程序相当,但具有数据服务功能3.2.2的ESB 4.0.3所需时间是tomcat应用程序的8倍。看起来XSLT并不像我之前想的那样是个问题。 我在调用此DS的代理服务中拥有所有错误处理和输入验证。 我还尝试将其更改为本地传输,但仍然存在相同的性能问题。此外,我还必须确保在端点定义中转发的XML的格式是SOAP12,否则代理服务不会使用本地传输转发。 您能否建议我将WSO2 ESB与数据服务功能3.2.2结合使用,并获得类似的性能

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

嗨,普拉巴斯

谢谢你的回复

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

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

请让我知道。 谢谢 阿比基特

阿比基特

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

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

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

希望这有帮助

问候。
普拉巴斯

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

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

t
谢谢你的答复。在我回来之前,我会做更多的测试。嗨,普拉巴斯,我已经更新了上面的问题。你能看看上面的问题,看看我们有什么解决办法吗?谢谢AbhijitHi Prabath,我已经更新了上面的问题。通过观察日志时间,看起来数据服务功能是一个问题,而不是代理问题。请看上面修改的问题。如果有任何其他的解决方案,我将非常感谢。谢谢Abhijit Abhijit,考虑到您提到的信息,很明显,当您调用代理服务前面的数据服务并进行验证时,会降低响应时间,显然,它在数据服务层的顶部添加了一个附加层。因此,如果您想比较使用DSS时dataservices的性能与使用ESB中安装的dataservices功能时的性能,我相信你必须摆脱额外的代理服务层,然后你会意识到在ESB中使用DSS和dataservices功能的性能基本相同,额外的代理服务增加了额外的负担。但是,我相信,如果在ESB内部使用数据服务时使用本地传输通过ESB调用DSS,那么在减少网络开销时,性能指标总是会得到提高,而网络开销通常是一些性能相关问题的罪魁祸首。