Utilizando software livre para alta disponibilidade de sistemas web Java

Post on 23-Jun-2015

1.526 views 0 download

description

Este slide foi apresentado no minicurso do Software Freedom Day 2012 em Teresina-PI

Transcript of Utilizando software livre para alta disponibilidade de sistemas web Java

Software Freedom Day 2012 – Teresina

Utilizando ferramentas livres para a alta disponibilidade de sistemas web

javaAdriel Lucas

Sobre mim● Tec. de Infraestrutura na Infoway

E-Health Company● Atuação:

– Redes e servidores linux;– Virtualização (Xen e Esxi)– Banco de dados (Mysql e Postgres);– Servidores web (tomcat e apache)

Roteiro

● Introdução● Cenário de Alta disponibilidade● Tomcat-Cluster● Balanceamento de Carga com Apache● Replicação de dados com Mysql;

Introdução

É fácil ter alta disponibilidade

em sistemas web?

É muito caro?

Da pra prover alta disponibilidade de BD?

Qual é o objetivo desta oficina?

Cenário de Alta disponibilidade

Tomcat-Cluster

Tomcat A Tomcat B

Sessões

TOMCAT-CLUSTER

➔ Requisitos:➔ Todos os atributos das classes deveram implementar

java.io.Serializable;➔ Ter no arquivo web.xml o atributo <distributable/> ou

definir no server.xml o atributo <Context distributable=”true”>;

➔ Definir um nome diferene para o atributo jvmRoute no arquivo server.xml <Engine name=”Catalina” jvmRoute=”node01” >;

Tomcat-Cluster

Tomcat A Tomcat B

Sessões

TOMCAT-CLUSTER

➔ Arquitetura:➔ Receiver: recebe as conexões vinda dos outros nós do

cluster;➔ Sender: envia as sessões para outro tomcat;➔ Menbership: realiza a parceria entre os nós do cluster;➔ Valve: detecta se uma requisição foi completada ou não;➔ Deployer: é responsável por deixar automática a gerencia

das aplicações no cluster;

Tomcat-Cluster (Funcionamento)

Tomcat-Cluster (configuração)

Balanceamento de Carga com Apache

Balanceamento de Carga com Apache

➢Mod_proxy

➢Mod_proxy_balancer

Balanceamento de Carga com Apache (Configuração)

Replicação de dados com MySQL

Replicação de dados com MySQL (configuração)

➔ my.cnf

➔ Master:➔ log-bin=mysql-bin➔ Server-id=1➔ relay_log = mysql-relay-bin➔ log_slave_update = 1

➔ Slave:➔ log-bin = mysql-bin

➔ server-id = 2

➔ relay_log = mysql-relay-bin➔ log_slave_update = 1

DÚVIDAS??www.adrielltech.com