mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	middleware/proxy: healthchecks fixes (#183)
* middleware/proxy: add spray keyword When spray is used, the proxy will, when all backend are down, spray to each target. When not used, default to the old defaults: max 1 failure and no spray. These defaults are also used when forwarding queries to another CoreDNS instance. Update the README with the new keyword. * typos * Make MaxFail = 1 again * more reversals
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| package proxy | ||||
|  | ||||
| import ( | ||||
| 	"log" | ||||
| 	"math/rand" | ||||
| 	"sync/atomic" | ||||
| ) | ||||
| @@ -44,9 +45,6 @@ func (r *Random) Select(pool HostPool) *UpstreamHost { | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if randHost == nil { | ||||
| 		return new(Spray).Select(pool) | ||||
| 	} | ||||
| 	return randHost | ||||
| } | ||||
|  | ||||
| @@ -58,6 +56,7 @@ type Spray struct{} | ||||
| func (r *Spray) Select(pool HostPool) *UpstreamHost { | ||||
| 	rnd := rand.Int() % len(pool) | ||||
| 	randHost := pool[rnd] | ||||
| 	log.Printf("[WARNING] All hosts reported as down, spraying to target: %s", randHost.Name) | ||||
| 	return randHost | ||||
| } | ||||
|  | ||||
| @@ -93,9 +92,6 @@ func (r *LeastConn) Select(pool HostPool) *UpstreamHost { | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if bestHost == nil { | ||||
| 		return new(Spray).Select(pool) | ||||
| 	} | ||||
| 	return bestHost | ||||
| } | ||||
|  | ||||
| @@ -113,8 +109,5 @@ func (r *RoundRobin) Select(pool HostPool) *UpstreamHost { | ||||
| 	for i := uint32(1); host.Down() && i < poolLen; i++ { | ||||
| 		host = pool[(selection+i)%poolLen] | ||||
| 	} | ||||
| 	if host.Down() { | ||||
| 		return new(Spray).Select(pool) | ||||
| 	} | ||||
| 	return host | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user