Beruflich Dokumente
Kultur Dokumente
BLOG DO JOS JR
BLOG COM CONTEDO RELACIONADO A CINCIA E TECNOLOGIA.
Q U A R TA - F E I R A , 2 4 D E A B R I L D E 2 0 1 3 MARCADORES
Criando Cluster de JBoss AS 7 com Load Balance Apache Felix File Install (1)
Veja no desenho abaixo como que funciona um cluster de instncias do CPU (1)
JBoss AS com o loadbalance (Apache WebService + Deb (1)
mod_cluster). Debian (1)
EAR (3)
Eclipse (1)
Eclipse Helios (1)
Equinox (2)
Hardware. (1)
HTTP (2)
httpd (3)
Jar (3)
Java (25)
Java Class File Format (1)
Java Compiler API (1)
Java3D (1)
javax.tools (1)
JBOSS (4)
JBOSS AS (2)
JBOSS AS 7 (9)
JBOSS AS 7.1.3 (3)
JBoss Cache (1)
JEE (1)
JNI (3)
JSR-199 (1)
JSR-202 (1)
JSR-223 (7)
CONFIGURAO DE CADA NODO DO JBOSS AS 7.1.3 JVM (2)
Jython (1)
1 Copie as pastas do servidor JBOSS AS 7.1.3 e renomeie cada cpia Linha de comando (1)
para:
Linux (9)
listener web (1)
jboss-as-7.1.3.Final-node1
Load Balance (2)
jboss-as-7.1.3.Final-node2
jboss-as-7.1.3.Final-node3 lua (1)
lua format file (1)
Cada pasta ser uma instncia do servidor JBoss AS 7 e funcionar no Mquinas Virtuais (1)
modo STANDALONE. MySQL (1)
Network (1)
Para cada cpia, alterar o arquivo standalone.conf que est na pasta NOOBS (1)
bin dentro de cada instncia colocando os seguintes parmetros:
Notebook (1)
NVIDIA (1)
JAVA_OPTS="$JAVA_OPTS -
OSGi (3)
Djboss.server.default.config=standalone-full-ha.xml"
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.as.logging.per- Overclock (1)
deployment=false" PostgreSQL (1)
# Esse offset deve ser diferente para cada nodo. Proxy (1)
JAVA_OPTS="$JAVA_OPTS -Djboss.socket.binding.port- Python (7)
offset=1000" RaspberryPi (1)
# O nome do nodo deve ser diferente para cada nodo. Raspbian (1)
JAVA_OPTS="$JAVA_OPTS -Djboss.node.name=nodo1"
Reflection API (1)
Samba (1)
Lembrando que para cada instncia, teremos o parmetros -
SAR (1)
Djboss.node.name e -Djboss.socket.binding.port-offset
diferentes. Servidor de Aplicao (5)
Servlet (1)
Podemos usar os seguintes valores para cada instncia: Ubuntu (1)
Ubuntu 14.04 (1)
Instncia - - Virtualizao (1)
Djboss.socket.bin Djboss.node.name VM (2)
ding.port-offset WAR (3)
ARQUIVO DO BLOG
Arquivo standalone-full-ha.xml
2015 (2)
Tambm, precisamos alterar o arquivo standalone-full-ha.xml 2014 (4)
para cada instncia do cluster de acordo com as configuraes a seguir:
2013 (6)
Outubro (1)
Na tag server, colocar o atributo name com o nome da instncia.
Lembrando que esse nome deve ser nico entre as instncias do Agosto (1)
cluster. Abril (2)
Criando Cluster de JBoss AS 7
Instncia Tag server, atributo name com Load Balance (JB...
<system-properties>
MEU PERFIL
<property
name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" JOSEPOJR
Note que essa tag vai informar o nome do servidor configurado acima.
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
<!-- TODO - only show this if the jacorb subsystem is added -->
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>
</interface>
</interfaces>
<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
<mod-cluster-config advertise-socket="modcluster" connector="ajp"
proxy-list="127.0.0.1:6666">
<dynamic-load-provider history="10" decay="2">
<load-metric type="cpu" weight="2" capacity="1"/>
<load-metric type="sessions" weight="1" capacity="512"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
<logger category="org.jboss.modcluster">
<level name="INFO"/>
</logger>
Arquivo nodo.sh
Esse arquivo ser criado para iniciar cada instncia do cluster. Veja
abaixo:
kill -9 pid
Depois disso, copie esse arquivo para cada pasta bin de cada
instncia do JBoss AS 7.
D permisso de execuo para esse arquivo .sh, com o comando
abaixo:
cd opt
http://127.0.0.1
It works!
Arquivo LoadBalanceServlet.java
package test;
import java.io.IOException;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoadBalanceServlet
*/
@WebServlet("/LoadBalanceServlet")
public class LoadBalanceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoadBalanceServlet() {
super();
// TODO Auto-generated constructor stub
}
out.println("<html>");
out.println("<head>");
out.println("<title>" + "Teste loadbalance - Host "
+ request.getRemoteAddr());
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("Nodo do JBOSS chamado: ");
out.println("jboss.node.name: "
+ System.getProperty("jboss.node.name"));
out.println("Tempo: " + Calendar.getInstance().getTimeInMillis());
out.println("</body>");
out.println("</html>");
out.close();
out.flush();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
doGet(request, response);
}
}
A seguir ser mostrado o cdigo do arquivo web.xml contendo a
configurao do Servlet.
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
version="3.0">
<display-name>LoadBalanceTestWAR</display-name>
<distributable/>
<servlet>
<servlet-name>LoadBalance</servlet-name>
<servlet-class>test.LoadBalanceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>LoadBalance</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Arquivo jboss-deployment-structure.xml
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<dependencies>
</dependencies>
</deployment>
</jboss-deployment-structure>
CONCLUSO
Alm dessas regras, podemos criar outras regras e combin-las entre si,
de acordo com as regras do negcio envolvidas. Basicamente,
recebemos como ENTRADA a requisio e no fim, o loadbalance
dever retornar uma instncia do cluster de JBoss AS 7 que
dever receber a requisio. Depois disso, o mod_cluster delega a
requisio para o nodo escolhido. Esse processo se repete a cada
requisio.
Portanto, para maior aprofundamento, precisa-se saber como
configurar o mod_cluster para conter regras personalizadas e de
acordo com o nosso negcio em questo.
REFERNCIAS
http://docs.jboss.org/mod_cluster/1.1.0/html/native.config.html
http://docs.jboss.org/mod_cluster/1.1.0/html/demo.html
http://docs.jboss.org/mod_cluster/1.1.0/html/java.AS7config.html
12 COMENTRIOS:
Jos
Responder
ldconfig
Respostas
Responder
Respostas
Responder
T R A N S L AT E
E S TAT S T I C A S D O S I T E
F R E E COU N T E R S