Your SlideShare is downloading. ×

HornetQ - 5.Transports

586

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
586
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Treinamento HornetQ
  • 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.

×