O algoritmo de balanceamento do JRun
Muita gente desconhece, mas ao se trabalhar com clustering no Macromedia JRun, é possível alterar a forma de como o processo de load balance, será feito por ele. Conhecer tais opções, pode ajudar você a efetuar ajustes finos na configuração do seu cluster, seja ele de instâncias do CFMX ou de JSP/Servlets/Beans. Assim, a distribuição da carga de acessos, será feita de maneira uniforme, de acordo com a potencialidade do hardware onde se encontra cada instância.
Isso é possível, com uma alteração bastante simples, disponível no console do JRun (JMC); mais precisamente na tela de configuração de cada instância. Para chegar nesta tela, ao se autenticar no JMC, clique em uma das instâncias que faz parte do cluster, e selecione o seguinte roteiro de opções:
Services >> Active Web Server >> ProxyService. Altere a seleção do campo Load Balancing Scheme:
Para a configuração deste atributo, existem as seguintes opções:
- Round robin - Definida como padrão para qualquer cluster criado; com esta opção, o connector, envia cada requisição, para uma instância por vez, seguindo uma ordem de sequencial.
- Weighted round robin - Nesta opção, o connector envia um número relativo de requests (de forma sequencial, um após ao outro), para uma instância específica.
- Weighted Random - opera de maneira semelhante à opção anterior, com a diferença, de que o connector envia essas mesmas requisições, de forma aleatória e não sequencial.
Para as duas últimas opções, ainda nesta tela, existe um outro atributo, que determinará, se a instância em questão, está capacitada ou não, a receber mais requests que outra. Através do atributo ServerWeight, é possível sinalizar ao connector, que uma instância em específico, possui configurações mais "parrudas", podendo receber portanto, mais requests.
Um parênteses que gostaria de abrir, com relação à este atributo, é que ele não é literal: não é porque você configura o valor 3, que essa será a quantidade de requests que a instância receberá. Para que você possa entender melhor, imagine que dentro de um cluster de 4 instâncias (A, B, C e D), apenas 2 (C e D) possuem este atributo configurado para o valor 2, ao passo, de que as outras duas (A e B), possuam o valor default, que é 1. Neste cenário, caso hajam momentos de gargalos na aplicação, as instâncias à receberem mais requests serão as C e D.
Vale lembrar que essas opções, nas versões 7 e 8 do CFMX, agora podem ser configuradas no próprio administrador do ColdFusion, no momento de criação de clusters; o que não impede, é claro, que sejam feitas normalmente pelo JMC.