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?

user1340582
  • 19,151
  • 35
  • 115
  • 171
  • 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. – Tushar Banne Jun 23 '17 at 06:32

2 Answers2

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.

Oreste
  • 436
  • 1
  • 6
  • 16
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.

sodik
  • 4,675
  • 2
  • 29
  • 47
  • 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. – sagneta Mar 03 '16 at 14:06