Why client-side load balancers like Ribbon?
Asked Answered
H

2

12

Netflix makes use of Ribbon, which is in their terms a "client-side load-balancer". What are the use-cases and advantages of a client-side load-balancer compared to a traditional load-balancer? Is Ribbon, and other Netflix OSS services AWS -specific or can they be used in other contexts?

Hannah answered 19/4, 2015 at 13:11 Comment(1)
When Should a client use a load balancer? Here I am referring to Client as a Micro Service it self. Does it add any overhead on the microservice/client.Butadiene
I
9

As already mentioned by using Ribbon you don't need an additional load balancer. You can also configure the balancing algorithm for each client differently, if you need to. At first I was a bit surprised also, but it does make a lot of sense.

Currently Spring Cloud, which uses Netflix OSS for most part, is independent of AWS.

I have made a small POC that you can check out here if want.

Irreligious answered 23/6, 2015 at 11:37 Comment(0)
D
4

One reason for using client-side load balancer can be performance. With client side balancer you can directly contact desired service with one network hop (after initial discovery of course); with traditional load-balancer you need two hops - see my very unprofessional test.

Unfortunately I don't have that much experience with Netflix OOS, I just deduce from documentation that at least Spring Cloud Netflix can run also e.g. on Cloud Foundry.

Damian answered 19/4, 2015 at 15:5 Comment(1)
I concur. That additional hop injects latency into every over-the-wire invocation. That caused us trouble. You can easily saturate an ha-proxy server and thus require multiple proxies. Soon it becomes a dev-ops hassle. Other load balances such as the ELB are ideally meant as edge-proxies rather than middle-tier proxies.Shimkus

© 2022 - 2024 — McMap. All rights reserved.