1

mule CE 3.3.0 を使用しています。私のプロジェクトには次のものがあります。

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:mule-ss="http://www.mulesoft.org/schema/mule/spring-security"
xmlns:ss="http://www.springframework.org/schema/security"
xmlns:spring="http://www.springframework.org/schema/beans" version="CE-3.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd 
http://www.mulesoft.org/schema/mule/spring-security http://www.mulesoft.org/schema/mule/spring-security/3.3/mule-spring-security.xsd 
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd ">

<global-property name="allowed" value="192.168.3.76,192.168.3.74,192.168.3.75" />

<configuration>
    <expression-language>
        <global-functions>
            def parseIp(fullIp) {
            return fullIp.substring(fullIp.indexOf('/') + 1, fullIp.indexOf(':'))
            }
    </global-functions>
    </expression-language>
</configuration>

<http:connector name="httpConnector" doc:name="HTTP\HTTPS">
    <service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>

<mule-ss:security-manager>
    <mule-ss:delegate-security-provider
        name="memory-dao" delegate-ref="authenticationManager" />
</mule-ss:security-manager>
<spring:beans>
    <ss:authentication-manager
        xmlns:ss="http://www.springframework.org/schema/security" alias="authenticationManager">
        <ss:authentication-provider>
            <ss:user-service id="userService">
                <ss:user name="weather" password="weather" authorities="ROLE_ADMIN" />
            </ss:user-service>
        </ss:authentication-provider>
    </ss:authentication-manager>
</spring:beans>

<flow name="OML_News" doc:name="OML_News">
    <http:inbound-endpoint host="localhost" port="9091"
        path="iran/oml_news" exchange-pattern="request-response" doc:name="HTTP">
    <mule-ss:http-security-filter realm="mule-realm" />
    </http:inbound-endpoint>
    <expression-filter
        expression="#['${allowed}'.contains(parseIp(message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']))]"
        doc:name="Expression" />        

    <cxf:proxy-service 
        service="Weather"
        wsdlLocation="http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl"
        namespace="http://ws.cdyne.com/WeatherWS/"
        validationEnabled="true" doc:name="SOAP">
    </cxf:proxy-service>

    <copy-properties propertyName="SOAPAction" doc:name="Property" />

    <cxf:proxy-client doc:name="SOAP" />

    <outbound-endpoint 
        address="http://wsf.cdyne.com/WeatherWS/Weather.asmx"
        exchange-pattern="request-response" doc:name="Generic">
    </outbound-endpoint>

</flow>

cxf サービスを立ち上げます。私の cxf サービスで wsdl アドレスを使用し、Web サービスを実装している顧客が何人かいます。私の wsdl アドレスを使用しているユーザーの数と、それぞれのユーザーがサーバーに送信するリクエストの数を特定できるようにしたいと考えています。本当は、レポートシステムを作りたいのです。

4

1 に答える 1

1

これを行うにはいくつかの方法があります。たとえば、http インバウンド エンドポイントの後に盗聴を追加し、データベースで統計を収集するカスタム コンポーネントを呼び出すか、これを行うフローをよりエレガントに呼び出すことができます。

<http:inbound-endpoint address="http://yourendpointaddress:8080/path" />
<wire-tap>
    <vm:outbound-endpoint path="stats" />
</wire-tap>

その後

<flow name="statsFlow">
    <vm:inbound-endpoint path="stats" />
    <!-- gather stats from the headers -->
    <jdbc:outbound-endpoint queryKey="insertStatsIntoDB" />
</flow>

これにより、パフォーマンスに影響を与えずに統計を収集できます。

于 2013-03-03T23:50:22.213 に答える