HornetQ - 4.Persistência
Upcoming SlideShare
Loading in...5
×
 

HornetQ - 4.Persistência

on

  • 738 views

 

Statistics

Views

Total Views
738
Slideshare-icon Views on SlideShare
443
Embed Views
295

Actions

Likes
0
Downloads
10
Comments
0

1 Embed 295

http://waelson.com.br 295

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    HornetQ - 4.Persistência HornetQ - 4.Persistência Presentation Transcript

    • Treinamento HornetQ
    • Agenda • Persistência – Mecanismo de Persistência – Implementações de Journals – Asynchronous I/O – Tipos de Journal – Instalado LibAIO
    • Persistência • Mecanismo de Persistência – Não utiliza banco de dados. – Possui mecanismo de persistência próprio baseado em arquivo. – Utiliza técnica de Journal para persistência.
    • Persistência • Mecanismo de Persitência – Conceito de Journal • É o processo de armazenar eventos em um log antes que cada um possa ser aplicado no sistema. Esses logs são chamados de journals. • São utilizados por exemplo em SGBDs e Sistemas de Arquivo.
    • Persistência • Mecanismo de Persitência – HornetQ Journal • Conjunto de arquivos pré-criados e de tamanho prédefinido, onde o HornetQ realiza appends. • Quando o journal atinge seu limite o HornetQ Journal move para o próximo. • Operações suportadas: – Inclusão de mensagens – Remoção de mensagens – Alteração de mensagens
    • Persistência • Mecanismo de Persitência – HornetQ Journal Mensagem 1 Mensagem 2 Mensagem 3 Mensagem 4 Mensagem 5 Journal de 10Mb
    • Persistência • Mecanismo de Persitência – HornetQ Journal • Possue poderoso recurso para tratamento dos Journals. – Remoção de espaços não utilizados – Compactação de dados • Suporta operações transacionais – Local Transactions – XA Transactions
    • Persistência • Implementações de Journals – Suporta nativamente dois tipos de implementações, são elas: • Java NIO – – – – Faz a interface com o sistema de arquivo Extremamente rápida Roda em qualquer plataforma Precisa do Java 6 ou superior • Linux Asynchronous IO – Específica para ambientes Linux – Interage diretamente com o Kernel – Precisa do Kernel 2.6 ou superior
    • Persistência • Asynchronous I/O – Seu objetivo é um permitir que um processo execute várias operações de escrita/leitura sem ter que bloquear ou aguarda que um outro seja concluído. – Possue patches para versão 2.4 do kernel. – Funciona apenas nos seguintes sistemas de arquivo: • • • • • ext2 ext3 ext4 jfx xfs
    • Persistência • Asynchronous I/O (non-blocking) 1 - O pedido de leitura retorna imediatamente, indicando que a leitura foi iniciada com êxito. 2 - O aplicativo executa outro processamento. 3 – Quando a resposta de leitura chegar um sinal é enviado.
    • Persistência • Tipos de Journals – Existem três tipos, são eles: • Bindings Journal • JMS Journal • Message Journal
    • Persistência • Tipos de Journals – Bindings Journal • Incluem configurações de filas que são publicadas no servidor juntamente com seus atributos. • Sempre utiliza o Java NIO por ter um throughput muito baixo. • São pré-fixados com hornetq-bindings • Possuem extensão bindings • Possuem tamanho de 1Mb • Está localizado na pasta $HORNETQ_HOME/data/bindings
    • Persistência • Tipos de Journals – JMS Journal • Armazenam dados relacionados à JMS: – – – – Queues Topics Connection Factories Informações de binding JNDI • Todo recursos criados vias API de gerenciamento (JMX) serão persistido nesse journal. • • • • São pré-fixados com hornetq-jms Possuem extensão jms Possuem tamanho de 1Mb Está localizado na pasta $HORNETQ_HOME/data/bindings
    • Persistência • Tipos de Journals – Message Journal • Armazena efetivamente todos os dados relacionados a mensagem • Se o ambiente for Linux e o AIO estiver instalado ele tenta utilizá-lo, do contrário utiliza Java NIO. • • • • São pré-fixados com hornetq-data Possuem extensão hq Possuem tamanho de 10Mb Está localizado na pasta $HORNETQ_HOME/data/journal
    • Persistência • Tipos de Journals – Configurando o Bindings e JMS Journals • As configurações ficam no arquivo hornetq-configuration.xml Diretório dos Binding e JMS Journals
    • Persistência • Tipos de Journals – Configurando o Message Journal • As configurações ficam no arquivo hornetq-configuration.xml Quantidade inicial de Journals Diretório dos Message Journal
    • Persistência • Tipos de Journals – Outros parâmetros de configuração importante • journal-type – Permite configurar a implementação do journal. Opções: NIO e ASYNCIO • journal-max-io – Total de requisições de escrita que serão enfileiradas antes de serem submetidas ao SO. – Usando NIO, deve ser sempre 1 – Usando AIO, por default é 500 – O limite máximo do SO é 65536 (/proc/sys/fs/aio-max-nr)
    • Persistência • Tipos de Journals – Outros parâmetros de configuração importante • Inserindo novos parametros
    • Persistência • Instalando LibAIO – Pré-Requisitos • • • • • • • • Kernel 2.6 ou superior Java 6 ou superior gcc - C Compiler gcc-c++ autoconf make Autoconf libtool • libaio • libaio-dev
    • Persistência • Instalando LibAIO # uname –r //Verifica a versão do kernel # find / -name java //Localiza o diretório de instalação do JDK # export JAVA_HOME=<jdk_path> # sudo yum install libaio libaio-devel //Configura a variável de ambiente do JDK //Instala biblioteca e pacote de desenvolvimento do LibAIO # sudo yum groupinstall ‘Development Tools’ //Instala as ferramentas necessárias para compilação # ./HORNETQ_HOME/native-src/bootstrap //Inicia o processo de compilação # ls /HORNETQ_HOME/native-src/src/.libs //Se existir o arquivo libHornetQAIO.so funcionou # mv /HORNETQ_HOME/native-src/src/.libs / libHornetQAIO.so /HORNETQ_HOME/bin/ libHornetQAIO.so //Deve-se colocar a lib (link simbólico) no classpath