Add client-side load balancing to Java microservices so requests spread automatically across multiple running instances
Automatically retry failed HTTP requests against a different healthy server without writing custom retry logic
Integrate with Netflix Eureka to dynamically discover available service instances as they come up or go down
Combine Ribbon modules to support HTTP, TCP, or UDP communication in a distributed Java backend
| netflix/ribbon | gabrielemariotti/cardslib | redspider1/concurrent | |
|---|---|---|---|
| Stars | 4,618 | 4,621 | 4,615 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | easy |
| Complexity | 3/5 | 3/5 | 1/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Add via Maven dependency, note that Ribbon is in maintenance mode and Netflix recommends gRPC for new projects, evaluate whether a newer alternative fits better.
Ribbon is a Java library built by Netflix for handling communication between software services running in the cloud. When you have multiple copies of a service running at the same time (to handle more traffic or to stay available if one copy fails), Ribbon helps route requests across those copies automatically. This kind of routing is called load balancing, and Ribbon does it on the client side, meaning the code making the request decides which server to talk to rather than relying on a separate intermediary. Beyond load balancing, Ribbon provides fault tolerance, which means it can retry a request against a different server if one fails. It also supports multiple communication protocols including HTTP, TCP, and UDP. An optional integration with Netflix Eureka (a separate Netflix open-source tool) allows Ribbon to automatically discover which servers are currently available, so the list of targets stays up to date without manual configuration. The library is organized into several modules you can mix and match. There is a core module for configuration, a load-balancer module, a transport module for network communication, and example code to show how things fit together. A deprecated HTTP client module is also present but has been superseded by the main ribbon module. It is worth noting that Netflix has placed Ribbon in maintenance mode. The README explains that internally Netflix moved toward a different architecture and is now building on gRPC, a different communication framework that supports multiple programming languages. Core parts of Ribbon are still running in Netflix's production systems, but the team is not actively adding new features to the open-source version. Pull requests from outside contributors are still reviewed and accepted. Ribbon is aimed at Java developers building distributed backend systems, particularly those already using other Netflix open-source tools like Eureka or Hystrix. The setup involves adding a Maven dependency. Code examples in the README show how to make HTTP calls with built-in retry logic and how to set up a dynamic load balancer connected to a service discovery system.
Java library by Netflix for client-side load balancing and fault-tolerant communication between cloud services. Routes requests across multiple server copies and retries on failure automatically. Currently in maintenance mode.
Mainly Java. The stack also includes Java, Maven, Netflix Eureka.
License type is not specified in the explanation.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.