cslb
Client-Side Load Balancer
This Project is in early developing state
Feature
- Multiple client-side load balancing solutions support
- Round-Robin DNS
- SRV DNS
- Static Node List
- Multiple distributing strategies
- Round-Robin
- Weighted Round-Robin
- Hashed
- Exile unhealthy node
- Node list TTL
Usage
Example:
package main
import (
"log"
"github.com/RangerCD/cslb"
"github.com/RangerCD/cslb/service"
"github.com/RangerCD/cslb/strategy"
)
func main() {
lb := cslb.NewLoadBalancer(
service.NewRRDNSService([]string{"example.com"}, true, true),
strategy.NewRoundRobinStrategy(),
)
log.Println(lb.Next()) // IP 1
log.Println(lb.Next()) // IP 2
}