服务的 wso2 微集成器集群 - 产生另一个问题,因为第一个问题无缘无故地关闭了

wso2 micro integrator clustering for a service - creating another question, since first one was closed for no eason

假设我们有一个与多个服务通信的微型集成器。

我们希望能够对其中一项服务进行集群,例如,如果我们向一项服务发送两个请求,我们希望这些请求中的每一个都由服务的不同节点处理,这可能吗?

服务是第三方 REST API,我们想将请求发送到两个不同的 URL。

Integration studio 元素中有 Load-BalanceEndPoint 元素,但不清楚它是如何工作的,即使它允许我们解决上述问题。

谁能帮我们解决这个problem/explain我们应该如何使用提到的端点?

是的,您可以为您的用例使用负载平衡端点。查看以下示例配置。

API 配置:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/loadbalance" name="checkLoadBalance" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET">
        <inSequence>
            <call>
                <endpoint key="testLoadBalance"/>
            </call>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

端点配置:

<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="testLoadBalance" xmlns="http://ws.apache.org/ns/synapse">
    <loadbalance algorithm="org.apache.synapse.endpoints.algorithms.RoundRobin">
        <endpoint name="endpoint_urn_uuid_6179155B57847314A657084710149040-304004407">
            <http method="GET" uri-template="http://www.mocky.io/v2/5e574b1c3000006000fd38cd">
                <suspendOnFailure>
                    <initialDuration>-1</initialDuration>
                    <progressionFactor>1</progressionFactor>
                </suspendOnFailure>
                <markForSuspension>
                    <retriesBeforeSuspension>0</retriesBeforeSuspension>
                </markForSuspension>
            </http>
        </endpoint>
        <endpoint name="endpoint_urn_uuid_6179155B57847314A657084710149040-304004407">
            <http method="GET" uri-template="http://www.mocky.io/v2/5185415ba171ea3a00704eed">
                <suspendOnFailure>
                    <initialDuration>-1</initialDuration>
                    <progressionFactor>1</progressionFactor>
                </suspendOnFailure>
                <markForSuspension>
                    <retriesBeforeSuspension>0</retriesBeforeSuspension>
                </markForSuspension>
            </http>
        </endpoint>
    </loadbalance>
    <description/>
</endpoint>

这里我使用了两个不同的模拟端点。他们将 return {"Hello": "World"}{"hello": "world"}。 部署后,如果我第一次调用 checkLoadBalance API,我将从第一个端点获得响应。如果我第二次调用,我将从第二个端点获得响应。在这里,我将算法指定为 Roundrobin。因此它将以RoundRobin方式进行调度。