HornetQ - 5.Transports

848 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
848
No SlideShare
0
A partir de incorporações
0
Número de incorporações
385
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

HornetQ - 5.Transports

  1. 1. Treinamento HornetQ
  2. 2. Agenda • Agenda – Overview – Acceptors – Connectors – Dinâmica de Funcionamento – Configuração do Netty
  3. 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. 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. 5. Transporte • Acceptors – Define a maneira a qual as conexões serão feita ao HornetQ. – Configurações definidas no arquivo hornetqconfiguration.xml.
  6. 6. Transporte • Acceptors hornetq-configuration.xml. – Acceptor são definidos dentro da tag <acceptors> – Pode existir mais de um <acceptor> dentro do <acceptors>
  7. 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. 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. 9. Transporte • Acceptors hornetq-configuration.xml. – Connector são definidos dentro da tag <connectors> – Pode existir mais de um <connector> dentro do <connectors>
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 19. Transporte • Configuração do Netty – Sockets TCP • Java IO / NIO Por padrão é FALSE, ou seja, não utiliza JAVA NIO.
  20. 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. 21. Transporte • Configuração do Netty – Outros Parametros Importantes: Quando falarmos de tunning, aprenderemos como configurá-lo de forma adequada.
  22. 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. 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. 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. 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.

×