服务的 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方式进行调度。
假设我们有一个与多个服务通信的微型集成器。
我们希望能够对其中一项服务进行集群,例如,如果我们向一项服务发送两个请求,我们希望这些请求中的每一个都由服务的不同节点处理,这可能吗?
服务是第三方 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方式进行调度。