SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Treinamento HornetQ
Agenda
• Agenda
– Overview
– Acceptors
– Connectors
– Dinâmica de Funcionamento
– Configuração do Netty
Transporte
• Overview
– Transporte diz respeito ao mecanismo de
comunicação entre o cliente e HornetQ.
– Seu mecanismo de comunicação padrão é
baseado na biblioteca Netty.
– A camada de transporte tem arquitetura plugável.
• Qualquer um pode desenvolver seu próprio mecanismo
de transporte (SPI – Service Provider Interface)
Transporte
• Overview
– O que é Netty?
• Framework para desenvolvimento de aplicações em
rede baseado em eventos assincronos.
• Principais características:
– Performance
» Melhor throughput e baixa latência
» Baixo consumo de memória
– Segurança
» Suportar SSL/TLS e StartTLS
Transporte
• Acceptors
– Define a maneira a qual as conexões serão feita ao
HornetQ.
– Configurações definidas no arquivo hornetqconfiguration.xml.
Transporte
• Acceptors
hornetq-configuration.xml.

– Acceptor são definidos dentro da tag <acceptors>
– Pode existir mais de um <acceptor> dentro do <acceptors>
Transporte
• Acceptors
hornetq-configuration.xml.

Fábrica utilizada para
criar o Acceptor

Aceita conexão de
qualquer host. (Seja
cauteloso)
Porta em que o servidor
estará ouvindo as
conexões.

– Estamos dizendo que as conexões serão aceitas via Netty e
o servidor escutará solicitações na porta 5446.
Transporte
• Connectors
– Eles falam como os clientes devem se conectar ao
HornetQ.
– Suas configurações também são definidas no
arquivo hornetq-configuration.xml.
Transporte
• Acceptors
hornetq-configuration.xml.

– Connector são definidos dentro da tag <connectors>
– Pode existir mais de um <connector> dentro do
<connectors>
Transporte
• Connectors
hornetq-configuration.xml.

Fábrica utilizada para
criar o Connector

IP do host HornetQ.
Porta do host que se
deseja conectar.

– Estamos dizendo: Quero me conectar ao servidor
“localhost” utilizando o Netty na porta 5446.
Transporte
• Dinâmica de Funcionamento
2 – Servidor informa ao cliente o
IP e Porta para conexão

É importante que o
acceptor esteja
configurado para aceitar
conexão do cliente e a
porta seja a mesma
informada no connector

3 – O Cliente faz a conexão
com o servidor

Cliente HornetQ
Servidor HornetQ
IP: 192.168.1.110
1 – Cliente faz lookup JNDI na
Connection Factory
Transporte
• Dinâmica de Funcionamento
– Requisitos para que a conexão seja estabelecida
remotamente.
1. Liberar o acesso remoto ao servidor JNDI do HornetQ
no arquivo hornetq-beans.xml.
2. Configurar o acceptor e o connector no arquivo
hornetq-configuration.xml
3. Associar a ConnectionFactory ao connector no
arquivo hornetq-jms.xml.
Transporte
• Dinâmica de Funcionamento
– Requisitos para que a conexão seja estabelecida
remotamente.
• Liberar o acesso remoto ao servidor JNDI do HornetQ
no arquivo hornetq-beans.xml.
Substitua “localhost” pelo IP
do servidor.
Transporte
• Dinâmica de Funcionamento
– Requisitos para que a conexão seja estabelecida
remotamente.
• Configurar o acceptor e o connector no arquivo
hornetq-configuration.xml

IP do servidor HornetQ.

As portas devem ser as
mesma.

De qual host o servidor
aceitará conexão. Valor
0.0.0.0 aceita conexões de
qualquer hosts.
Transporte
• Dinâmica de Funcionamento
– Requisitos para que a conexão seja estabelecida
remotamente.
• Associar a ConnectionFactory ao connector no arquivo
hornetq-jms.xml.

hornetq-jms.xml

hornetq-configuration.xml
Transporte
• Configuração do Netty
– Netty suporta os seguintes mecanismo de transporte:
•
•
•
•

Sockets TCP
SSL
HTTP/HTTPS
Servlet

Daremos atenção especial a esses
Transporte
• Configuração do Netty
– Sockets TCP
• Mecanismo de transporte padrão
• Comunicação insegura
• Pode ser configurado para utilizar:
– Java IO
– Java NIO
Transporte
• Configuração do Netty
– Sockets TCP
• Java IO
– Algumas vezes é possível conseguir melhor latência.
Útil quando o servidor manipula pouca requisições.

• Java NIO
– Escala melhor que o anterior quando há
necessidade de muitas conexões simultâneas.
Transporte
• Configuração do Netty
– Sockets TCP
• Java IO / NIO

Por padrão é FALSE, ou seja,
não utiliza JAVA NIO.
Transporte
• Configuração do Netty
– Outros Parâmetros Importantes:
• tcp-send-buffer-size
– Tamanho do buffer em bytes do lado cliente que será
utilizado para armazenar as mensagens antes que elas
sejam enviadas. Deve está associada a largura da banda
da rede. Valor padrão 32 Kb.
– Buffer = Largura da Banda * RTT

• nio-remote-threads
– Quantidade de threads criadas pelo NIO para
encaminhamento de pacotes ao servidor. Valor padrão 1, que significa que é a quantidade de processadores *
3.
Transporte
• Configuração do Netty
– Outros Parametros Importantes:

Quando falarmos de tunning,
aprenderemos como
configurá-lo de forma
adequada.
Transporte
• Configuração do Netty
– SSL
•
•
•
•

Mecanismo de sockets acrescido de criptografia.
Consiste basicamente no uso de certificado digital.
Envolve configuração do connector e acceptor.
Parametros
– ssl-enabled
– key-store-path
– key-store-password
– trust-store-path
– trust-store-password
Transporte
• Configuração do Netty
– SSL
• Será utilizado o keystore e certificado dos samples
do HornetQ.
– Diretório $HORNETQ_HOME/examples/jms/sslenabled/server0
» hornetq.example.keystore
» hornetq.example.truststore

• Os arquivos ficaram no diretório
$HORNETQ_HOME/config/stand-alone/non-clustered
Transporte
• Configuração do Netty
– SSL
• Configurando o Connector

Ativa o SSL

Senha da keystore

Não é necessária nenhuma alteração nos clientes.

Caminho da
keystore no
cliente. O cliente
precisa do arquivo
localmente.
Transporte
• Configuração do Netty
– SSL

Ativa o SSL

Caminho da
keystore no
servidor.

• Configurando o Acceptor

Senha da keystore

Senha do
certificado

Caminho do
certificado.

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 09 instalação e configuração dhcp
Aula 09   instalação e configuração dhcpAula 09   instalação e configuração dhcp
Aula 09 instalação e configuração dhcpAparicio Junior
 
Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Mauro Tapajós
 
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...Wellington Oliveira
 
Linux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpLinux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpRui Lopes
 
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...Wellington Oliveira
 
Introdução ao dhcp
Introdução ao dhcpIntrodução ao dhcp
Introdução ao dhcpMarcelo Gomes
 
Redes prática - DHCP
Redes prática - DHCPRedes prática - DHCP
Redes prática - DHCPLuiz Arthur
 
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de OliveiraWANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de OliveiraWellington Oliveira
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosFábio dos Reis
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte2lindos
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerEdenilton Michael
 
3 - Redes de Comutadores - ethernet wifi
3 - Redes de Comutadores -  ethernet wifi3 - Redes de Comutadores -  ethernet wifi
3 - Redes de Comutadores - ethernet wifiAndre Peres
 
Livro pfsense 2.0 em português
Livro pfsense 2.0 em portuguêsLivro pfsense 2.0 em português
Livro pfsense 2.0 em portuguêsDavid de Assis
 

Was ist angesagt? (20)

Redes dhcp
Redes dhcpRedes dhcp
Redes dhcp
 
Aula 09 instalação e configuração dhcp
Aula 09   instalação e configuração dhcpAula 09   instalação e configuração dhcp
Aula 09 instalação e configuração dhcp
 
Dhcp
DhcpDhcp
Dhcp
 
Roteadores e roteamento
Roteadores e roteamentoRoteadores e roteamento
Roteadores e roteamento
 
Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6
 
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...
WANs e Roteadores Cap. 3 Configurando um Roteador - CCNA 3.1 Wellington Pinto...
 
Linux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpLinux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcp
 
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...
WANs e Roteadores Cap. 4 Outros Dispositivos - CCNA 3.1 Wellington Pinto de O...
 
Introdução ao dhcp
Introdução ao dhcpIntrodução ao dhcp
Introdução ao dhcp
 
Protocolo dhcp
Protocolo dhcpProtocolo dhcp
Protocolo dhcp
 
Redes prática - DHCP
Redes prática - DHCPRedes prática - DHCP
Redes prática - DHCP
 
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de OliveiraWANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson Treinamentos
 
Camada de rede parte1
Camada de rede   parte1Camada de rede   parte1
Camada de rede parte1
 
HornetQ - 15.Bridge
HornetQ - 15.BridgeHornetQ - 15.Bridge
HornetQ - 15.Bridge
 
Camada de rede parte3
Camada de rede   parte3Camada de rede   parte3
Camada de rede parte3
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
 
3 - Redes de Comutadores - ethernet wifi
3 - Redes de Comutadores -  ethernet wifi3 - Redes de Comutadores -  ethernet wifi
3 - Redes de Comutadores - ethernet wifi
 
Livro pfsense 2.0 em português
Livro pfsense 2.0 em portuguêsLivro pfsense 2.0 em português
Livro pfsense 2.0 em português
 

Andere mochten auch (12)

HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5HornetQ - 6.Integração com JBoss 5
HornetQ - 6.Integração com JBoss 5
 
HornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de LogHornetQ - 9.Mecanismo de Log
HornetQ - 9.Mecanismo de Log
 
HornetQ - 8.Segurança
HornetQ - 8.SegurançaHornetQ - 8.Segurança
HornetQ - 8.Segurança
 
HornetQ - 14.Cluster
HornetQ - 14.ClusterHornetQ - 14.Cluster
HornetQ - 14.Cluster
 
Ajax e Design de Interação (versão longa)
Ajax e Design de Interação (versão longa)Ajax e Design de Interação (versão longa)
Ajax e Design de Interação (versão longa)
 
HornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de MensagemHornetQ - 16.Divert e Splitting de Mensagem
HornetQ - 16.Divert e Splitting de Mensagem
 
HornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens ExpiradasHornetQ - 11.Mensagens Expiradas
HornetQ - 11.Mensagens Expiradas
 
HornetQ - 4.Persistência
HornetQ - 4.PersistênciaHornetQ - 4.Persistência
HornetQ - 4.Persistência
 
HornetQ - 12.Paginação
HornetQ - 12.PaginaçãoHornetQ - 12.Paginação
HornetQ - 12.Paginação
 
HornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQHornetQ - 10.Reentrega de Mensagens e DLQ
HornetQ - 10.Reentrega de Mensagens e DLQ
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 

Ähnlich wie HornetQ - 5.Transports

Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumWellington Oliveira
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostasForça Tauá
 
Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2SoftD Abreu
 
M4 tarefa video
M4 tarefa videoM4 tarefa video
M4 tarefa videogonxalox
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1SoftD Abreu
 
Aula 08 meios de comunicação de dados
Aula 08 meios de comunicação de dadosAula 08 meios de comunicação de dados
Aula 08 meios de comunicação de dadosJorge Ávila Miranda
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...CPqD
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)Mariana Hiyori
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02DP7
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internetMarco Pinheiro
 
Introdução a Software-defined Networks
Introdução a Software-defined NetworksIntrodução a Software-defined Networks
Introdução a Software-defined Networkscaixamagicasoftware
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Lucas Silva
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Maurício Moreira Neto
 

Ähnlich wie HornetQ - 5.Transports (20)

Aula 1
Aula 1Aula 1
Aula 1
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes Tanenbaum
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
 
Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2
 
M4 tarefa video
M4 tarefa videoM4 tarefa video
M4 tarefa video
 
Cap 02.pdf
Cap 02.pdfCap 02.pdf
Cap 02.pdf
 
Camada de aplicação parte1
Camada de aplicação parte1Camada de aplicação parte1
Camada de aplicação parte1
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1
 
prot.ppt
prot.pptprot.ppt
prot.ppt
 
Aula 08 meios de comunicação de dados
Aula 08 meios de comunicação de dadosAula 08 meios de comunicação de dados
Aula 08 meios de comunicação de dados
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
Redes de Comunicacao-Camada de transporte
Redes de Comunicacao-Camada de transporte Redes de Comunicacao-Camada de transporte
Redes de Comunicacao-Camada de transporte
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internet
 
Qualidade do Serviço (QoS)
Qualidade do Serviço (QoS)Qualidade do Serviço (QoS)
Qualidade do Serviço (QoS)
 
Introdução a Software-defined Networks
Introdução a Software-defined NetworksIntrodução a Software-defined Networks
Introdução a Software-defined Networks
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores
 

Mehr von Waelson Negreiros Nunes (13)

Treinamento ajax ria - 01
Treinamento ajax   ria - 01Treinamento ajax   ria - 01
Treinamento ajax ria - 01
 
Treinamento ajax 05
Treinamento ajax   05Treinamento ajax   05
Treinamento ajax 05
 
Treinamento ajax 04
Treinamento ajax   04Treinamento ajax   04
Treinamento ajax 04
 
Treinamento ajax 03
Treinamento ajax   03Treinamento ajax   03
Treinamento ajax 03
 
Treinamento ajax 02
Treinamento ajax   02Treinamento ajax   02
Treinamento ajax 02
 
Treinamento ajax modulo javascript
Treinamento ajax   modulo javascriptTreinamento ajax   modulo javascript
Treinamento ajax modulo javascript
 
Desvendando o mundo iOS
Desvendando o mundo iOSDesvendando o mundo iOS
Desvendando o mundo iOS
 
HornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e FailoverHornetQ - 13.Alta Disponibilidade e Failover
HornetQ - 13.Alta Disponibilidade e Failover
 
HornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQHornetQ - 2.Arquitetura do HornetQ
HornetQ - 2.Arquitetura do HornetQ
 
HornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo StandaloneHornetQ - 2.1.HornetQ no Modo Standalone
HornetQ - 2.1.HornetQ no Modo Standalone
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
 
Curso flex sicoob - aula 11
Curso flex   sicoob - aula 11Curso flex   sicoob - aula 11
Curso flex sicoob - aula 11
 
EJB 3.1
EJB 3.1EJB 3.1
EJB 3.1
 

HornetQ - 5.Transports

  • 2. Agenda • Agenda – Overview – Acceptors – Connectors – Dinâmica de Funcionamento – Configuração do Netty
  • 3. Transporte • Overview – Transporte diz respeito ao mecanismo de comunicação entre o cliente e HornetQ. – Seu mecanismo de comunicação padrão é baseado na biblioteca Netty. – A camada de transporte tem arquitetura plugável. • Qualquer um pode desenvolver seu próprio mecanismo de transporte (SPI – Service Provider Interface)
  • 4. Transporte • Overview – O que é Netty? • Framework para desenvolvimento de aplicações em rede baseado em eventos assincronos. • Principais características: – Performance » Melhor throughput e baixa latência » Baixo consumo de memória – Segurança » Suportar SSL/TLS e StartTLS
  • 5. Transporte • Acceptors – Define a maneira a qual as conexões serão feita ao HornetQ. – Configurações definidas no arquivo hornetqconfiguration.xml.
  • 6. Transporte • Acceptors hornetq-configuration.xml. – Acceptor são definidos dentro da tag <acceptors> – Pode existir mais de um <acceptor> dentro do <acceptors>
  • 7. Transporte • Acceptors hornetq-configuration.xml. Fábrica utilizada para criar o Acceptor Aceita conexão de qualquer host. (Seja cauteloso) Porta em que o servidor estará ouvindo as conexões. – Estamos dizendo que as conexões serão aceitas via Netty e o servidor escutará solicitações na porta 5446.
  • 8. Transporte • Connectors – Eles falam como os clientes devem se conectar ao HornetQ. – Suas configurações também são definidas no arquivo hornetq-configuration.xml.
  • 9. Transporte • Acceptors hornetq-configuration.xml. – Connector são definidos dentro da tag <connectors> – Pode existir mais de um <connector> dentro do <connectors>
  • 10. Transporte • Connectors hornetq-configuration.xml. Fábrica utilizada para criar o Connector IP do host HornetQ. Porta do host que se deseja conectar. – Estamos dizendo: Quero me conectar ao servidor “localhost” utilizando o Netty na porta 5446.
  • 11. Transporte • Dinâmica de Funcionamento 2 – Servidor informa ao cliente o IP e Porta para conexão É importante que o acceptor esteja configurado para aceitar conexão do cliente e a porta seja a mesma informada no connector 3 – O Cliente faz a conexão com o servidor Cliente HornetQ Servidor HornetQ IP: 192.168.1.110 1 – Cliente faz lookup JNDI na Connection Factory
  • 12. Transporte • Dinâmica de Funcionamento – Requisitos para que a conexão seja estabelecida remotamente. 1. Liberar o acesso remoto ao servidor JNDI do HornetQ no arquivo hornetq-beans.xml. 2. Configurar o acceptor e o connector no arquivo hornetq-configuration.xml 3. Associar a ConnectionFactory ao connector no arquivo hornetq-jms.xml.
  • 13. Transporte • Dinâmica de Funcionamento – Requisitos para que a conexão seja estabelecida remotamente. • Liberar o acesso remoto ao servidor JNDI do HornetQ no arquivo hornetq-beans.xml. Substitua “localhost” pelo IP do servidor.
  • 14. Transporte • Dinâmica de Funcionamento – Requisitos para que a conexão seja estabelecida remotamente. • Configurar o acceptor e o connector no arquivo hornetq-configuration.xml IP do servidor HornetQ. As portas devem ser as mesma. De qual host o servidor aceitará conexão. Valor 0.0.0.0 aceita conexões de qualquer hosts.
  • 15. Transporte • Dinâmica de Funcionamento – Requisitos para que a conexão seja estabelecida remotamente. • Associar a ConnectionFactory ao connector no arquivo hornetq-jms.xml. hornetq-jms.xml hornetq-configuration.xml
  • 16. Transporte • Configuração do Netty – Netty suporta os seguintes mecanismo de transporte: • • • • Sockets TCP SSL HTTP/HTTPS Servlet Daremos atenção especial a esses
  • 17. Transporte • Configuração do Netty – Sockets TCP • Mecanismo de transporte padrão • Comunicação insegura • Pode ser configurado para utilizar: – Java IO – Java NIO
  • 18. Transporte • Configuração do Netty – Sockets TCP • Java IO – Algumas vezes é possível conseguir melhor latência. Útil quando o servidor manipula pouca requisições. • Java NIO – Escala melhor que o anterior quando há necessidade de muitas conexões simultâneas.
  • 19. Transporte • Configuração do Netty – Sockets TCP • Java IO / NIO Por padrão é FALSE, ou seja, não utiliza JAVA NIO.
  • 20. Transporte • Configuração do Netty – Outros Parâmetros Importantes: • tcp-send-buffer-size – Tamanho do buffer em bytes do lado cliente que será utilizado para armazenar as mensagens antes que elas sejam enviadas. Deve está associada a largura da banda da rede. Valor padrão 32 Kb. – Buffer = Largura da Banda * RTT • nio-remote-threads – Quantidade de threads criadas pelo NIO para encaminhamento de pacotes ao servidor. Valor padrão 1, que significa que é a quantidade de processadores * 3.
  • 21. Transporte • Configuração do Netty – Outros Parametros Importantes: Quando falarmos de tunning, aprenderemos como configurá-lo de forma adequada.
  • 22. Transporte • Configuração do Netty – SSL • • • • Mecanismo de sockets acrescido de criptografia. Consiste basicamente no uso de certificado digital. Envolve configuração do connector e acceptor. Parametros – ssl-enabled – key-store-path – key-store-password – trust-store-path – trust-store-password
  • 23. Transporte • Configuração do Netty – SSL • Será utilizado o keystore e certificado dos samples do HornetQ. – Diretório $HORNETQ_HOME/examples/jms/sslenabled/server0 » hornetq.example.keystore » hornetq.example.truststore • Os arquivos ficaram no diretório $HORNETQ_HOME/config/stand-alone/non-clustered
  • 24. Transporte • Configuração do Netty – SSL • Configurando o Connector Ativa o SSL Senha da keystore Não é necessária nenhuma alteração nos clientes. Caminho da keystore no cliente. O cliente precisa do arquivo localmente.
  • 25. Transporte • Configuração do Netty – SSL Ativa o SSL Caminho da keystore no servidor. • Configurando o Acceptor Senha da keystore Senha do certificado Caminho do certificado.