[
https://issues.apache.org/jira/browse/DUBBO-34?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jun Liu updated DUBBO-34:
-------------------------
Description:
This is an idea for Google Summer of Code (GSoC). Get to know about Dubbo[0].
As an RPC framework, LoadBalance is a key part of Dubbo for distributing
traffics among servers. Below are the built-in strategies already supported:
* Round Robin
* Least Active
* Consistent Hash
* Random
Now, we are considering some more intelligent and adaptive strategies that can
learn the healthy status of servers at runtime and automatically adjust traffic
distributions, something like P2C for Finagle[1 ]and JSQ for Netflix[2].
0. https://issues.apache.org/jira/browse/DUBBO-33.
1. https://twitter.github.io/finagle/guide/Clients.html.
2.
https://medium.com/netflix-techblog/netflix-edge-load-balancing-695308b5548c.
How to achieve it, guidance for your reference:
The new load-balancing strategy should be able to automatically isolate
abnormal instances based on the statistics of the load or health status of the
back-end Provider instance. This ensures that traffic is forwarded to the
processing-capable instance. The load balancer should also know when to
recover, periodically checks the health status of the isolated instances, put
back the instance into the normal instance pool to be scheduled once it's
recovered.
A quite similar project is [Circuit Breaker|http://example.com], except that
circuit breaker treats the downstream cluster as a whole while this Load
Balancer needs to distinguish the state of each instance.
This topic can be achieved by extending the
[LoadBalance|https://github.com/apache/incubator-dubbo/blob/master/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/LoadBalance.java]
SPI.
To provide the basic statistics for LB to make a decision, you may need to
count the data of each RPC request, such as QPS, RT, Active Request, etc. This
can be achieved by extending the
[Filter|https://github.com/apache/incubator-dubbo/blob/master/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Filter.java]
SPI. For more details, see How [MetricsFilter|http://example.com] does it.
was:
This is an idea for Google Summer of Code (GSoC). Get to know about Dubbo[0].
As an RPC framework, LoadBalance is a key part of Dubbo for distributing
traffics among servers. Below are the built-in strategies already supported:
* Round Robin
* Least Active
* Consistent Hash
* Random
Now, we are considering some more intelligent and adaptive strategies that can
learn the healthy status of servers at runtime and automatically adjust traffic
distributions, something like P2C for Finagle[1 ]and JSQ for Netflix[2].
0. https://issues.apache.org/jira/browse/DUBBO-33.
1. https://twitter.github.io/finagle/guide/Clients.html.
2.
https://medium.com/netflix-techblog/netflix-edge-load-balancing-695308b5548c.
> GSoC 2019: New Load Balancer for higher availability and resilience.
> --------------------------------------------------------------------
>
> Key: DUBBO-34
> URL: https://issues.apache.org/jira/browse/DUBBO-34
> Project: Apache Dubbo
> Issue Type: Task
> Reporter: Jun Liu
> Priority: Major
> Labels: GSoC2019
>
> This is an idea for Google Summer of Code (GSoC). Get to know about Dubbo[0].
> As an RPC framework, LoadBalance is a key part of Dubbo for distributing
> traffics among servers. Below are the built-in strategies already supported:
> * Round Robin
> * Least Active
> * Consistent Hash
> * Random
> Now, we are considering some more intelligent and adaptive strategies that
> can learn the healthy status of servers at runtime and automatically adjust
> traffic distributions, something like P2C for Finagle[1 ]and JSQ for
> Netflix[2].
> 0. https://issues.apache.org/jira/browse/DUBBO-33.
> 1. https://twitter.github.io/finagle/guide/Clients.html.
> 2.
> https://medium.com/netflix-techblog/netflix-edge-load-balancing-695308b5548c.
> How to achieve it, guidance for your reference:
> The new load-balancing strategy should be able to automatically isolate
> abnormal instances based on the statistics of the load or health status of
> the back-end Provider instance. This ensures that traffic is forwarded to the
> processing-capable instance. The load balancer should also know when to
> recover, periodically checks the health status of the isolated instances,
> put back the instance into the normal instance pool to be scheduled once it's
> recovered.
> A quite similar project is [Circuit Breaker|http://example.com], except that
> circuit breaker treats the downstream cluster as a whole while this Load
> Balancer needs to distinguish the state of each instance.
> This topic can be achieved by extending the
> [LoadBalance|https://github.com/apache/incubator-dubbo/blob/master/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/LoadBalance.java]
> SPI.
> To provide the basic statistics for LB to make a decision, you may need to
> count the data of each RPC request, such as QPS, RT, Active Request, etc.
> This can be achieved by extending the
> [Filter|https://github.com/apache/incubator-dubbo/blob/master/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Filter.java]
> SPI. For more details, see How [MetricsFilter|http://example.com] does it.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)