- This topic has 2 replies, 3 voices, and was last updated 5 years, 4 months ago by .
Viewing 2 reply threads
Viewing 2 reply threads
- You must be logged in to reply to this topic.
hi,
kbmMWRoundRobinLoadBalancer can’t probe all my app server.
The FetchAllServersData method did not get all my available application servers.
The TkbmMWLoadBalancedServerList.Update method did not execute as expected, for example: I have four application servers, but UpdateServer did not execute 4 times.
The result is that only the first and the fourth application servers are found.
best regards
Tom yu.
I add SERVERID in ConnectionString:
PARAMS=;STREAMFORMAT=STANDARD;VERIFYTRANSFER=NO;STRINGCONVERSION=1;IDLEINTERVAL=-1;…;SERVERID=1
PARAMS=;STREAMFORMAT=STANDARD;VERIFYTRANSFER=NO;STRINGCONVERSION=1;IDLEINTERVAL=-1;…;SERVERID=2
This solved my problem,but I think the TkbmMWLoadBalancedServerList.AddServers should be modified:
procedure TkbmMWLoadBalancedServerList.AddServers(AServerList:TStringList; ADiscovered:boolean);
…
begin
cs:=TkbmMWConnectionString.Create;
…
cs.Text:=AServerList.Strings[i];
if cs.Values[‘SERVERID’]=” then
srv.FIdentifier:=TkbmMWServer(Server).GetUniqueIdentifier
else
srv.FIdentifier:=cs.Values[‘SERVERID’];
srv.FConnectionString.Text:=AServerList.Strings[i];
…
end;
This may be wrong, I don’t guarantee it.
best regards
Tom YU
Hi,
The RoundRobin loadbalancer loadbalances between servers who are known to the loadbalancer. For a server to be known, it needs to register with the loadbalancer. Registering with the loadbalancer is done via the loadbalancing service. As part of the registration the server that needs registering, informs the loadbalancing server about which services are available and typically also how their current load are.
The round robin loadbalancer thus will only tell a client to loadbalance to a server which have the required service of the required version.
Check the whitepaper http://www.components4developers.com/files/whitepapers/kbmMW/Loadbalancing_and_failover_250.pdf for more info.
Basically the idea is that servers that are added make their own announcement about their existance by using the TkbmMWLoadBalancedServerAnnouncement class/component.