Académique Documents
Professionnel Documents
Culture Documents
com Jboss AS
Fbio Sartori
Arquiteto de Sistemas
www.fabiosartori.info
fabio@fabiosartori.info
Clusterizao JBoss
!! O que ser visto ?
!! Definio de cluster
!! Definio de load balancer
!! Exemplos de aplicaes
!! Configurao de um cluster com load balancer
Clusterizao JBoss
!! O que no ser visto ?
!! Padres de desenvolvimento
!! Customizao de servidor
!! Tunning de AS e aplicaes
!! Instalao do apache
Clusterizao JBoss
!! Definio
!! Um conjunto de instncias de AS, agrupadas sob a
forma de uma partio.
!! Logo
!! Instncia de JBoss = Nodo
!! Cluster = Partio
Clusterizao JBoss
Partio FSCluster
Nodo
Jboss 1
Nodo
Jboss 2
Nodo
Jboss 3
Clusterizao JBoss
!! O que necessrio para criar um cluster JBoss ?
!! Que uma ou mais instncias ingressem em uma mesma
partio.
Clusterizao JBoss
!! Onde configurado o servio de cluster ?
!! Deploy/cluster-service.xml.
Clusterizao JBoss
!! Como verificar informaes sobre o cluster ?
!! Informaes podem ser acessadas via jmxconsole ou qualquer cliente jmx
!! Ex:
!! http://localhost:8080/jmx-console/
!! Jboss:service=<NOME_DA_PARTICAO>
!! Verifique o atributo CurrentView
Clusterizao JBoss
Load Balancer
!! Servio responsvel por distribuir a carga entre os
nodos do cluster.
Load Balancer
!! Como feito o balanceamento de carga ?
!! Atravs de algortmos de balanceamento, entre eles:
!! Round-Robin
!! Uma requisio para cada instncia
!! First Available
!! Precisa responder ! ??
Cenrio Bsico
Load Balancer
Exemplo de Cenrio
Load Balancer
Apache
Apache
Apache
AS01
AS02
AS03
JBoss
JBoss
JBoss
Storage
Cenrio do Tutorial
Cenrio do Tutorial
Usurio
Load Balancer
Apache
websrv
clr01
clr02
JBoss
JBoss
Ambiente
!! Sistema Operacional
!! Linux Kernel 2.6.x.x
!! CentOS 5 ser utilizado neste tutorial
!! JVM
!! 1.5.0_14-b03
!! Servidor de aplicaes
!! Jboss-4.2.2.GA
!! Load Balance
!! Apache 2
!! Mdulo mod_jk
Configurando o Sistema
Operacional
!! Grupo
!! Usurio
!! Diretrio para o ambiente java
Modificando a senha do
usurio
!! Modificar a senha do usurio jsadmin
Instalando a JVM
Instalando JBoss
Configurando variveis de
ambiente
!! Criar um arquivo java_profile.sh, dentro do
diretrio /opt/java
Configurando variveis de
ambiente
Profile
!! Configurando o profile do usurio jsadmin
Configurando JBoss
!! Com o usurio jsadmin, acessar o diretrio $JDIR
Criando o container
!! Faa uma cpia do container all, com o nome de
cluster-fs
Configurando o nome do
Cluster e IP dos nodos
! Edite o arquivo $JBOSS_HOME/bin/
run.conf
Configurao do Apache
!! Dever ser feita na mquina que far o
balanceamento com o usurio root
!! Mdulo mod_jk
Configurao do arquivo
workers.properties
!! No diretrio <APACHE2_HOME>/conf
!! Criar o arquivo workers.properties
Configurao do arquivo
workers.properties
#Definicao dos workers que serao usados para mapear as requisicoes
worker.list=loadbalancer,status
#Definicao no nodo node1
worker.node1.port=8009
worker.node1.host=clr01.fabiosartori.info
worker.node1.type=ajp13
#Nro de reqs para este nodo
worker.node1.lbfactor=1
worker.node1.cachesize=10
#Definicao no nodo node2
worker.node2.port=8009
worker.node2.host=clr02.fabiosartori.info
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.cachesize=10
#Load-Balancer
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
#Sessao persistida em determinado servidor
worker.loadbalancer.sticky_session=1
#Worker de status para gerenciar o load balancer
worker.status.type=status
Configurao do
uriworkermap.properties
!! Especifica os contextos que sero balanceados
Configurao do arquivo
uriworkermap.properties
!! No diretrio <APACHE2_HOME>/conf
!! Criar o arquivo uriworkermap.properties
Configurao do arquivo
uriworkermap.properties
Configurao do Tomcat
!! Container
!! Configurando o cluster
Configurao do Tomcat
! Editar o o arquivo de configurao do
tomcat
$
Configurao do Tomcat
! Ative o mdulo jk
Ativando o JBoss
! Conceda permisses no script run.sh
! Ative o JBoss
Ativando o Apache
Aplicaes WEB
!! Quais so os ajustes necessrios em uma aplicao
web tenha alta disponibilidade ?
!! Ela precisa replicar o estado das sesses entre os
nodos.
Aplicaes WEB
<web-app ....... >
<distributable/>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Aplicaes WEB
!! Como monitorar o estado das sesses ?
!! Atravs de algum cliente jmx ou do jmx-console
!! http://localhost:8080/jmx-console/
!! Clique no MBean
jboss.cache:service=TomcatClusteringCache e execute a
operao printDetails
Aplicaes WEB
Exemplo
!! Web
EJB3
!! O que necessrio para clusterizar componentes
EJB3 ?
!! Basicamente, tudo o que voc precisa fazer anotar
o componente com @Clustered.
EJB3
@Stateful
@Clustered
public class StatefulBlaBean implements StatefulBla, Serializable {
.
.
.
@Stateless
@Clustered
public class StatelessBlaBean implements StatelessBla {
.
.
.
}
EJB3
!! Como verificar os componentes disponibilizados ?
!! Atravs de algum cliente jmx ou do jmx-console
!! http://localhost:8080/jmx-console/
!! Clique no MBean jboss:service=JNDIView
!! e execute a operao list
EJB3
EJB3
MDB
!! O que necessrio para clusterizar MDBs ?
!! Basicamente, tudo o que voc precisa fazer anotar
o componente com @Clustered.
MDB
Exemplo
!! MDB
Perguntas ???