3.2.8.2. Implantação de um HA Singleton
O procedimento a seguir demonstra como implantar um Serviço que está encapsulado com o decorador SingletonService e é usado como um serviço singleton no cluster inteiro. Este serviço ativa um timer programado, que é iniciado apenas uma vez no cluster.
Procedimento 3.21. Implantação do Serviço HA Singleton
Grave o aplicativo do serviço HA singleton.
Segue abaixo um exemplo de umServiceque está encapsulado com o decoradorSingletonServicea ser implantado como um serviço singleton. Um exemplo completo pode ser encontrado na seção início rápidocluster-ha-singletonque é enviada junto com o Red Hat JBoss Enterprise Application Platform 6. O início rápido contém todas as instruções para a construção e implantação do aplicativo.Criação de um serviço.
A lista abaixo é um exemplo de um serviço:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criação de um ativador que instale
Servicecomo um singleton clusterizado.A lista abaixo é um exemplo de um ativador de Serviço que instalaHATimerServicecomo um serviço de singleton clusterizado:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nota
O exemplo de código acima utiliza uma classe,org.jboss.as.clustering.singleton.SingletonService, que faz parte da API privada do JBoss EAP. Uma API pública estará disponível na versão EAP 7 e a classe privada será preterida, porém estas classes serão mantidas e estarão disponíveis durante o ciclo de lançamento do EAP 6.x.Criação de um Arquivo ServiceActivator
Crie um arquivo nomeadoorg.jboss.msc.service.ServiceActivatorno diretório do arquivoresources/META-INF/services/. Adicione uma linha contendo um nome inteiramente qualificado da classe ServiceActivator criada na etapa anterior.org.jboss.as.quickstarts.cluster.hasingleton.service.ejb.HATimerServiceActivator
org.jboss.as.quickstarts.cluster.hasingleton.service.ejb.HATimerServiceActivatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Criação de um bean Singleton que implementa um timer a ser usado como um timer singleton no cluster inteiro.
Este bean Singleton não deve possuir uma interface remota e não deve haver referência à sua interface local por outro EJB em qualquer aplicativo. Isto evita uma pesquisa por parte de um cliente ou outro componente e garante que o SingletonService tenha controle total do Singleton.Criação da interface do Agendador
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criação de um bean do Singleton que implementa o timer do singleton amplo com cluster.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Inicie cada instância do JBoss EAP 6 com o clustering habilitado.
Para habilitar o clustering para os servidores autônomos, você deve iniciar cada servidor com o perfilHA, usando um nome de nó único e uma porta de deslocamento para cada instância.- Para o Linux, use a seguinte sintaxe de comando para iniciar os servidores:
EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME -Djboss.socket.binding.port-offset=PORT_OFFSET
EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME -Djboss.socket.binding.port-offset=PORT_OFFSETCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemplo 3.3. Inicie múltiplos servidores autônomos no Linux
EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node1 EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100
$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node1 $ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Para o Microsoft Windows, use a seguinte sintaxe de comando para iniciar os servidores:
EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME -Djboss.socket.binding.port-offset=PORT_OFFSET
EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME -Djboss.socket.binding.port-offset=PORT_OFFSETCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemplo 3.4. Inicie múltiplos servidores autônomos no Microsoft Windows
C:> EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=node1 C:> EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100
C:> EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=node1 C:> EAP_HOME\bin\standalone.bat --server-config=standalone-ha.xml -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Nota
Caso decida por não usar os argumentos da linha de comando, o arquivostandalone-ha.xmlpode ser configurado para cada instância do servidor para vincular a uma interface separada.Implante o aplicativo nos servidores
O comando Maven a seguir implanta o aplicativo em um servidor autônomo executando nas portas padrões.mvn clean install jboss-as:deploy
mvn clean install jboss-as:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow Para a implantação de servidores adicionais, passe o nome do servidor. Caso esteja em um host diferente, passe o nome do host e o número da porta na linha de comando:mvn clean package jboss-as:deploy -Djboss-as.hostname=localhost -Djboss-as.port=10099
mvn clean package jboss-as:deploy -Djboss-as.hostname=localhost -Djboss-as.port=10099Copy to Clipboard Copied! Toggle word wrap Toggle overflow Consulte a seção início rápidocluster-ha-singleton, que é enviada junto com o JBoss EAP 6, para mais detalhes sobre a configuração e implantação do Maven.