[zorp-hu] HTTP Load balancer

Balazs Scheidler bazsi at balabit.hu
2006. Már. 3., P, 10:49:55 CET


On Thu, 2006-03-02 at 21:55 +0100, Deim Ágoston wrote:
> hi,
> 
> > de Bazsi valaszabol nem derult ki, hogy mi szabalyoz.
> > A DNS?
> hát, én ezt most feltételeztem, mivel a zorp a kérések átirányítását DNS
> illetve /etc/hosts eredményeinek alapján végzi. A round robin pedig DNS
> alapú.

A Zorp-ban levo FailoverChainer-es round-robin nem csak a DNS-bol tud
mukodni, bar teny, hogy azt _is_ tudja hasznalni, peldaul:

nem DNS alapu:

def rr():
	Service('http', HttpProxy, router=DirectedRouter([
		SockAddrInet('10.0.0.1', 80), 
		SockAddrInet('10.0.0.2', 80),
		SockAddrInet('10.0.0.3', 80)]),
		chainer=FailoverChainer(round_robin=TRUE))

	Listener(SockAddrInet('1.2.3.4', 80), 'http')

def rr_dns():
	ResolverPolicy('http-dns', DNSResolver(multi=TRUE))
	Service('http', HttpProxy, router=InbandRouter(),
		resolver_policy='http-dns',
		chainer=FailoverChainer(round_robin=TRUE))

Bar a ResolverPolicy 3.1-es feature, 3.0-ban meg nem policy-kent mukodik, hanem 
kozvetlenul lehet megadni Service parameterkent. 3.0-ban kb igy nezne ki:

def rr_dns():
	Service('http', HttpProxy, router=InbandRouter(),
		resolver=DNSResolver(multi=TRUE),
		chainer=FailoverChainer(round_robin=TRUE))


A 2. pelda annyit jelent, hogy a HTTP proxyra bizod a nevfeloldast, viszont a 
nevfeloldo resolvernek megmondod, hogy tobb cimet akarsz visszakapni (multi=TRUE), 
ezek utan a FailoverChainer mar teszi a dolgat.

-- 
Bazsi



További információk a(z) zorp-hu levelezőlistáról