[ 
https://issues.apache.org/jira/browse/DUBBO-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16781491#comment-16781491
 ] 

Jun Liu commented on DUBBO-34:
------------------------------

Hi, [~danielamorais]

Welcome!

I am happy to see that you are interested in some areas (reactive architecture, 
load balancer, service mesh) mentioned in the topic list. I think the easiest 
way to get started with is _load balancer_, thanks to Dubbo's SPI extension 
model[1], you should be able to develop a new load balance strategy with only 
limited knowledge of Dubbo's implementation details. You can see that Dubbo 
already provided some load balancers[2], but the key ability these balancers 
lack of is that they cannot dynamically distribute traffics among servers 
according to each server's load and health status at runtime.

You may find that LeastActiveLoadBalance[3] already has the ability to 
distribute traffics according to load of servers at runtime (the load of 
backend servers are counted by active requests still handling by server and not 
return), but it's not good enough, some of the problems I can tell are:
 * Hanging request is not the only metric, other metrics such as RT can also be 
an important one?
 * The cost of finding the most idle server may increase exponentially.
 * Memory explosion maintaining so much server's status.

The links above are some practices published by Finagle and Netflix, you may 
find their ideas helpful. Please feel free to realize your great ideas.

1. [http://dubbo.apache.org/en-us/blog/introduction-to-dubbo-spi.html]
2. 
[https://github.com/apache/incubator-dubbo/tree/master/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance]
3. 
[https://github.com/apache/incubator-dubbo/blob/master/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java]

> 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. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to