kbmMWRoundRobinLoadBalancer

Home Forums kbmMW kbmMWRoundRobinLoadBalancer

Viewing 2 reply threads
  • Author
    Posts
    • #54969
      TomYU
      Participant

      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.

    • #54976
      tomyu666
      Participant

      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

       

      • This reply was modified 1 month, 2 weeks ago by tomyu666.
    • #54984
      kimbomadsen
      Keymaster

      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.

      • This reply was modified 1 month, 1 week ago by kimbomadsen.
Viewing 2 reply threads
  • You must be logged in to reply to this topic.