Re: how to achieve URL hash LB algorithm on ZXTM
"Eric Y. Zhang" <[email protected]> Tue, 11 Aug 2009 23:09:51 +0800
| Newsgroups | gmane.comp.programming.load-balancing.general |
|---|---|
| Message-ID | <[email protected]> |
Thanks for quick reply, Ben. I was going to do this dynamically, but since I can not get active nodes list from traffic script, so I have to try your way. It is not very convenient, if I will add squid server. but it is ok to hard code server list. Eric On Tue, Aug 11, 2009 at 8:53 PM, Ben Mansell <[email protected]> wrote: > If you want to *always* balance the same URLs to the same server, then this > can be done too: > > 1) Create a session persistence class, this time of type 'Named node', and > assign it to your pool of squid servers. > 2) Now, use a TrafficScript rule similar to this to pick the node to use: > > # Set this to the number of Squid servers > $nodes = 2; > # Hash the URL to a node to use > $hash = lang.ord( string.hashMD5( http.getHostHeader() . > http.getRawURL() )); > $hash = $hash % $nodes; > if( $hash == 0 ) { > connection.setPersistenceNode( "server1:80" ); > } else if( $hash == 1 ) { > connection.setPersistenceNode( "server2:80" ); > } > > > This will force ZXTM to use the same backend for each URL. There is no big > storage mapping URL -> server, it is all done algorithmically. > > If a squid server fails, you can control what ZXTM should do via the > 'failure mode' for the session persistence class. For example, make it pick > another node to use. When the original server comes back online, it will > start to be used again. > > > > > Ben > > > On 11/08/2009 11:08, Eric Y. Zhang wrote: > >> Thanks Ben. >> >> so there is no way for me always to balance same URLs into same squid >> server. I am thinking to get it done by Java extension(coz I can use >> getNodes in Java) . The input of java extension is URL, output is the >> $nodename which I should send traffic into. >> >> >> >> >> >> >> On Tue, Aug 11, 2009 at 4:11 PM, Ben Mansell<[email protected]<mailto: >> [email protected]>> wrote: >> It is 'by design' that the TrafficScript rule hashes the URLs into ~65000 >> different 'buckets', but that you should configure ZXTM to remember fewer >> mappings than this. >> >> ZXTM will store the mappings whatever their value, but will only remember >> the most recently used mappings. In this way, over time the maps of old URL >> -> squid server will slowly be forgotten, and a new server will be picked >> when that URL is seen again. >> >> This will let ZXTM load balance the workload and ensures that any spikes >> of workload across the cluster will be smoothed out over time. >> >> >> Ben >> >> >> >> On 07/08/2009 12:18, Eric Y. Zhang wrote: >> Hi Ben >> >> $session = string.left( string.hashMD5( >> http.getHostHeader().http.getRawURL() ), 2 ); is always bigger than >> universal_cache_size; so when one new URL not in universal cache comes in, >> ZXTM will balance it using the algorithm I set in the pool? >> >> because I don't have enough memory to store all persistence keys into, so >> that would be a problem. >> >> >> another interesting question is do you implement the URL hash on your >> appliance device? >> >> >> I checked iRule from Devcentral of F5 and tried to convert that election >> Hash into traffic script, but it seems there is no function in traffic >> script to list active nodes of a pool. >> >> thanks >> >> Eric >> >> >> On Fri, Aug 7, 2009 at 10:02 AM, Eric Y. Zhang<[email protected] >> <mailto:[email protected]><mailto:[email protected]<mailto: >> [email protected]>>> wrote: >> >> thanks to all of you who discuss this. I learned to many from your >> threads. this is the most helpful mailing list I ever been. >> >> I will try to figure out the best way to spread load/maintain the >> availability. >> >> thanks again >> _______________________________________________ >> lb-l mailing list >> [email protected]<mailto:[email protected]> >> http://vegan.net/mailman/listinfo/lb-l >> Searchable Archive: http://vegan.net/lb/archive >> http://lbdigest.com Load Balancing Digest >> http://lbwiki.com Load Balancing Wiki >> >> >> >> -- >> Life is hard >> > > _______________________________________________ > lb-l mailing list > [email protected] > http://vegan.net/mailman/listinfo/lb-l > Searchable Archive: http://vegan.net/lb/archive > http://lbdigest.com Load Balancing Digest > http://lbwiki.com Load Balancing Wiki > -- Life is hard _______________________________________________ lb-l mailing list [email protected] http://vegan.net/mailman/listinfo/lb-l Searchable Archive: http://vegan.net/lb/archive http://lbdigest.com Load Balancing Digest http://lbwiki.com Load Balancing Wiki