Wso2 有没有办法在ESB或API管理器上启用全局有效负载压缩(gzip)?

Wso2 有没有办法在ESB或API管理器上启用全局有效负载压缩(gzip)?,wso2,wso2esb,axis2,Wso2,Wso2esb,Axis2,是否有办法在ESB(

是否有办法在ESB(<5.0.0)或API管理器(<2.0.0)上打开负载压缩,特别是针对应用程序/json内容类型

我在资源层面上做到了这一点,但显然,一个全球性的选择将是理想的

经过一些研究,我在catalina-server.xml中找到了以下可用选项:

compression=“on”&compressablemmetype

这并没有帮助,因为tomcat服务器提供web界面,而不是服务,这正是axis2的用途

经过进一步的挖掘,我发现了一篇存档的文章。其中引用了以下内容:

MC_GZIP_响应(服务器,可写):默认情况下,HTTP响应正文未压缩。请将此消息上下文属性设置为true,以压缩响应正文


听起来这正是我需要的,但我不确定在哪里设置这个参数

在Api Manager中,您可以将此属性添加到velocity_template.xml中,因此默认情况下,此属性将添加到正在创建的所有Api中。

在Api Manager中,您可以将此属性添加到velocity_template.xml中,因此默认情况下,此属性将添加到正在创建的所有Api中。

谢谢“ycr”。你让我走上了正确的道路

我所做的是为api管理器中部署的api创建一个全局自定义内顺序和外顺序(全局扩展),如中所述

inSequence检查请求的Accept Encoding头的值/存在性,outSequence Gzip相应地对响应进行处理

步骤:

创建“插入序列”处理程序xml文件:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
<property name="encoding" expression="$trp:Accept-Encoding"/>
<filter xpath="fn:contains(fn:lower-case(get-property('encoding')) , 'gzip')">
    <then>
        <property name="compression" value="true"/>
    </then>
    <else>
        <property name="compression" value="false"/>
    </else>
</filter>

文件名可以是任何名称,但标记内的名称必须是WSO2AM--Ext--In

类似地,创建“outSequence”文件:


复制/repository/deployment/server/synapse configs/default/sequences目录中的文件。它们将被热部署

向任何已部署的api发送一个请求,并将头Accept Encoding设置为gzip(其中包含gzip的任何字符串都将被压缩),它应使用内容编码进行响应:gzip

谢谢“ycr”。你让我走上了正确的道路

我所做的是为api管理器中部署的api创建一个全局自定义内顺序和外顺序(全局扩展),如中所述

inSequence检查请求的Accept Encoding头的值/存在性,outSequence Gzip相应地对响应进行处理

步骤:

创建“插入序列”处理程序xml文件:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
<property name="encoding" expression="$trp:Accept-Encoding"/>
<filter xpath="fn:contains(fn:lower-case(get-property('encoding')) , 'gzip')">
    <then>
        <property name="compression" value="true"/>
    </then>
    <else>
        <property name="compression" value="false"/>
    </else>
</filter>

文件名可以是任何名称,但标记内的名称必须是WSO2AM--Ext--In

类似地,创建“outSequence”文件:


复制/repository/deployment/server/synapse configs/default/sequences目录中的文件。它们将被热部署

向任何部署的api发送一个请求,并将头Accept Encoding设置为gzip(其中包含gzip的任何字符串都将被压缩),它应该使用内容编码:gzip进行响应