wso2在将xml转换为json时速度较慢 5000 过错 101503,101504,101505,101507 100 1 3000 5000 过错 101503,101504,101505,101507 100 1 3000 {statusCode}{statusDescription});]]>
上面是我的流程,我正在尝试转换下面的xmlwso2在将xml转换为json时速度较慢 5000 过错 101503,101504,101505,101507 100 1 3000 5000 过错 101503,101504,101505,101507 100 1 3000 {statusCode}{statusDescription});]]>,wso2,wso2esb,Wso2,Wso2esb,上面是我的流程,我正在尝试转换下面的xml <?xml version="1.0" encoding="UTF-8"?> <inSequence xmlns="http://ws.apache.org/ns/synapse"> <log> <property name="Request received to" value="Test2&qu
<?xml version="1.0" encoding="UTF-8"?>
<inSequence xmlns="http://ws.apache.org/ns/synapse">
<log>
<property name="Request received to" value="Test2"/>
</log>
<script language="js"><![CDATA[var start = new Date().getTime();var payload = mc.getPayloadXML();var requestId = payload..*::requestId.toString();var timeStamp = payload..*::timeStamp.toString();var msisdn = payload..*::msisdn.toString();var keyWord = payload..*::keyWord.toString();for(var i=0;i<payload..*::dataSet.param.length();i++) { if(payload..*::dataSet.param[i].id.toString()=="order_id"){ var orderId =payload..*::dataSet.param[i].value.toString(); } if(payload..*::dataSet.param[i].id.toString()=="entity_id") { var entity_id =payload..*::dataSet.param[i].value.toString(); } }var end = new Date().getTime();var timeTaken = end - start; print("Time Duration : " + timeTaken + " ms "); var start2 = new Date().getTime();mc.setPayloadJSON( { "Request":{ "request_id":requestId, "action":"CancelOrder", "request_timestamp":"208042019210259", "source_node":"CRM", "userid":"1", "username":"SuperAdmin", "dataset":{ "param":[ { "id":"order_id", "value":"11265878971023" }, { "id":"sub_order_id", "value":"11265878766755" }, { "id":"entity_id", "value":"003" } ] } }});var end2 = new Date().getTime();var timeTaken2 = end2 - start2;print("Time taken for set to payload : " + timeTaken2 + " ms ");]]></script>
<call>
<endpoint>
<failover>
<endpoint name="FirstUrl">
<http method="POST" uri-template="http://10.0.0.75:8080/Sampleproject-0.0.1-SNAPSHOT/XMLtoJSON">
<timeout>
<duration>5000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>101503,101504,101505,101507</errorCodes>
<initialDuration>100</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>3000</maximumDuration>
</suspendOnFailure>
</http>
</endpoint>
<endpoint name="SecoundUrl">
<http method="POST" uri-template="http://10.0.0.75:8080/Sampleproject-0.0.1-SNAPSHOT/XMLtoJSON">
<timeout>
<duration>5000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>101503,101504,101505,101507</errorCodes>
<initialDuration>100</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>3000</maximumDuration>
</suspendOnFailure>
</http>
</endpoint>
</failover>
</endpoint>
</call>
<script language="js"><![CDATA[var statusCode , statusDescription;var resultCode= mc.getPayloadJSON().Response.result_code.toString();if(resultCode == "SC000"){statusCode = "SC0000";statusDescription = "SUCCESS";}else{statusCode = "SC0001";statusDescription = "FAILURE";}mc.setPayloadXML(<Response><statusCode>{statusCode}</statusCode><statusDescription>{statusDescription }</statusDescription></Response> );]]></script>
<property name="messageType" scope="axis2" type="STRING" value="application/xml"/>
<respond/>
</inSequence>
到json,然后在json到xml中调用url和response
我只能发射70 tps,它将达到最大120 tps,减少到40 tps,然后再次增加到120 tps
在脚本中介中sc.setPayloadJSON()每次请求大约需要50到200毫秒
请帮帮我
提前感谢在TPS高或有效负载大的情况下,不建议使用脚本中介。这将对中介的性能产生重大影响 如果需要提高性能,可以使用类中介[1]或使用现有中介来实现解决方案。在您的情况下,似乎需要一个简单的数据映射。因此,您可以尝试用有效负载工厂中介器替换现有脚本中介器。您可以参考[2]中的示例来构建负载工厂中介器 JSON负载的必要值可以通过XPath获得[3] [1]-https://docs.wso2.com/display/EI640/Class+调解人 [2]-https://docs.wso2.com/display/ESB500/PayloadFactory+Mediator#PayloadFactoryMediator-Example2:JSON [3]-https://docs.wso2.com/display/EI6xx/Accessing+属性+带+XPath
<Request>
<requestId><![CDATA[12310209842389]]></requestId>
<timeStamp><![CDATA[2019/12/25 12:12:12]]> </timeStamp>
<msisdn> <![CDATA[865545]]></msisdn>
<keyWord><![CDATA[CANCEL_ORDER_API]]></keyWord>
<dataSet>
<param>
<id><![CDATA[order_id]]></id>
<value><![CDATA[12310209842396]]></value>
</param>
<param>
<id><![CDATA[entity_id]]></id>
<value><![CDATA[1]]></value>
</param>
</dataSet>
</Request>