SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Mensageria com HornetQ e
o futuro do projeto SwitchYard
Samuel Tauil
Middleware Instructor, Red Hat
WHO AM I?
E finalmente o que é JMS e mensageria?

API Java que encapsula destinos de mensagens
e padrões de publicação e leitura de mensagens.


Parte da especificação Java EE.
Mas e o JBoss Messaging?

  > HornetQ é o JBoss Messaging 2.
  > JBM têm 95%+ de diferença no codebase.
  > EOL, novas funcionalidades no HornetQ.
  > Persistência em BD.
  > Suportado no JBoss EAP.
Why so horny?



     > open source
     > multiprotocolo
     > embarcável
     > foco em performance
     > clusterizável
     > assíncrono
Usabilidade

> Core API simples
> Configuração rápida e fácil
> Documentação completa (português em breve)
> Grande quantidade de exemplos
> Dependências reduzidas
Standalone!

> Não precisa de um Application Server.
> Integração JBoss AS 4.x e 5.x via JCA Adapter.
 ●   @ResourceAdapter("hornetq-ra.rar")
> JMS Provider padrão no JBoss AS 6.
> Zero dependências do JBoss AS.
> POJO design.
Standalone!

Configuration configuration = new ConfigurationImpl();


configuration.getAcceptorConfigurations().add(
new TransportConfiguration(InVMAcceptorFactory.class.getName()));


HornetQServer server = HornetQServers.newHornetQServer(configuration);


server.start();
Arquitetura



   JMS                           HornetQ
 Facade       Core API
                                  Server




                         POJOs
Arquitetura
                                        Storage
                                           Journal
                                       Large Messages
                                            Paging
  JMS                       HornetQ
Facade      Core API
                             Server
                                        Remote
                                             Netty
                                             Native
                                             Stomp
         Stomp Clients

         Rest Clients    JMS Server
                          Manager


                               Management
Arquitetura
                            ●   arquivos pre-filled
                            ●   libaio ou Java NIO

              Context      Journal
   HornetQ
    Server
                            Timed Buffer
                   Async
                            nio      libaio
                                        JNI
                                              Uso de JNI
                                               mínimo
Arquitetura

 > POJOs
 > Embarcável
 > Injetável por qualquer container de DI
  ●   JBoss Microcontainer
  ●   Spring
  ●   Google Guice
Protocolos

 > Implementação JMS 1.1 spec
 > RESTful API
 > STOMP
 > Transporte HTTP
 > Transporte inVM
 > XMPP (pipeline)
Funcionalidades

 > Gerenciamento via JMX
 > ACKs assíncronos
 > Agendamento de mensagens
 > Paginação de mensagens
 > Suporte a mensagens grandes
 > Last Value queue
 > E muito mais em:
  ●   http://community.jboss.org/wiki/HornetQFeatures
Componentes

 > JNDIServer
 > MBeanServer
 > Configuration
 > HornetQSecurityManager
 > HornetQServer
Configurando um Divert

    > Apenas para queues local x local
    > Servidor externo: Divert + Bridge


    Exemplo:
     <divert name="pedidos-divert">
        <address>jms.queue.pedidos</address>
        <forwarding-address>jms.topic.estatisticas</forwarding-address>
        <exclusive>false</exclusive>
     </divert>

●
A hora da(o) demo
JSR-343, o que vem por aí?

  > Integração com CDI (JSR-299).
  > Obrigatoriedade da implementação de RA.
  > Anotações padronizadas.
  > Full suporte Java EE 7.
  > Suporte assíncrono.
  ●   Envio de response depois de um método de
      callback ser chamado.
Performance


 300000




 250000




 200000

                                                                ActiveMQ
                                                                SwiftMQ
 150000                                                         HornetQ
                                                                OpenMQ


 100000




  50000




      0
                                                 Mensag/Seg

          Relatório completo em: http://www.jboss.org/hornetq
Performance




        http://www.spec.org/jms2007/results/jms2007.html
SwitchYard

●   Novo projeto para a construção da nova
    geração de ESB.
●   Foco em consistência e usabilidade.
●   Runtime embarcável
●   POJO based
●   Integração com CDI
Exemplo de Serviço
 @Service(PedidoService.class)
 public class PedidoServiceBean implements PedidoService {


 @Inject @Reference
 private ItemService itemService;
 public PedidoAck enviarPedido(Pedido pedido) {
        Item item = itemService.buscarItem(pedido.getItemId());
     //    ...... cria ack
     }
 }
Development Tools

●   Seam Forge
●   Maven (Hell! XML também)
●   JBDS
●   Camel Routes
Obrigado!
 > Samuel Tauil
   samuel@redhat.com
   http://about.me/samueltauil


 > Clebert Suconic
   irc://freenode.net:6667#hornetq
     http://jboss.org/hornetq
     http://twitter.com/hornetq
     http://hornetq.blogspot.com

Más contenido relacionado

La actualidad más candente

WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Apresentação hotspot
Apresentação hotspotApresentação hotspot
Apresentação hotspotLincolm Aguiar
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0jesuinoPower
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.Eduardo Medeiros
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução práticaJosé Barros
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFRafael T. C. Soares (tuelho)
 

La actualidad más candente (20)

WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Apresentação hotspot
Apresentação hotspotApresentação hotspot
Apresentação hotspot
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Java web
Java webJava web
Java web
 
HornetQ - 15.Bridge
HornetQ - 15.BridgeHornetQ - 15.Bridge
HornetQ - 15.Bridge
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução prática
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
 

Destacado

BRMS - Business Rules Management System
BRMS - Business Rules Management SystemBRMS - Business Rules Management System
BRMS - Business Rules Management SystemSamuel Tauil
 
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7Samuel Tauil
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoÁtilla Silva Barros
 
Tdc2012 java e amqp - uma alternativa ao jms
Tdc2012 java e amqp - uma alternativa ao jmsTdc2012 java e amqp - uma alternativa ao jms
Tdc2012 java e amqp - uma alternativa ao jmsLuciano Molinari
 
Novas APIs do Java EE 7: JMS e Web Services
Novas APIs do Java EE 7: JMS e Web ServicesNovas APIs do Java EE 7: JMS e Web Services
Novas APIs do Java EE 7: JMS e Web ServicesHelder da Rocha
 
JUDCon Brazil 2013 - Vert.x an introduction
JUDCon Brazil 2013 - Vert.x an introductionJUDCon Brazil 2013 - Vert.x an introduction
JUDCon Brazil 2013 - Vert.x an introductionSamuel Tauil
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017LinkedIn
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Destacado (17)

BRMS - Business Rules Management System
BRMS - Business Rules Management SystemBRMS - Business Rules Management System
BRMS - Business Rules Management System
 
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS Assíncrono
 
Tdc2012 java e amqp - uma alternativa ao jms
Tdc2012 java e amqp - uma alternativa ao jmsTdc2012 java e amqp - uma alternativa ao jms
Tdc2012 java e amqp - uma alternativa ao jms
 
J530 9 jms
J530 9 jmsJ530 9 jms
J530 9 jms
 
Novas APIs do Java EE 7: JMS e Web Services
Novas APIs do Java EE 7: JMS e Web ServicesNovas APIs do Java EE 7: JMS e Web Services
Novas APIs do Java EE 7: JMS e Web Services
 
Java Messaging Service
Java Messaging ServiceJava Messaging Service
Java Messaging Service
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 
JUDCon Brazil 2013 - Vert.x an introduction
JUDCon Brazil 2013 - Vert.x an introductionJUDCon Brazil 2013 - Vert.x an introduction
JUDCon Brazil 2013 - Vert.x an introduction
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a Mensageria com HornetQ e o futuro do SwitchYard

Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2Dextra
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaGlobalcode
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Edgar Silva
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!João Longo
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Daniel Destro Do Carmo
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)mauriciopel
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?Bruno Borges
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Lucas Silva
 

Similar a Mensageria com HornetQ e o futuro do SwitchYard (20)

Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2Maratona JBoss 2010 - JBoss AS Amazon EC2
Maratona JBoss 2010 - JBoss AS Amazon EC2
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
GUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In ActionGUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In Action
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2
 

Mensageria com HornetQ e o futuro do SwitchYard

  • 1. Mensageria com HornetQ e o futuro do projeto SwitchYard Samuel Tauil Middleware Instructor, Red Hat
  • 3. E finalmente o que é JMS e mensageria? API Java que encapsula destinos de mensagens e padrões de publicação e leitura de mensagens. Parte da especificação Java EE.
  • 4. Mas e o JBoss Messaging? > HornetQ é o JBoss Messaging 2. > JBM têm 95%+ de diferença no codebase. > EOL, novas funcionalidades no HornetQ. > Persistência em BD. > Suportado no JBoss EAP.
  • 5. Why so horny? > open source > multiprotocolo > embarcável > foco em performance > clusterizável > assíncrono
  • 6. Usabilidade > Core API simples > Configuração rápida e fácil > Documentação completa (português em breve) > Grande quantidade de exemplos > Dependências reduzidas
  • 7. Standalone! > Não precisa de um Application Server. > Integração JBoss AS 4.x e 5.x via JCA Adapter. ● @ResourceAdapter("hornetq-ra.rar") > JMS Provider padrão no JBoss AS 6. > Zero dependências do JBoss AS. > POJO design.
  • 8. Standalone! Configuration configuration = new ConfigurationImpl(); configuration.getAcceptorConfigurations().add( new TransportConfiguration(InVMAcceptorFactory.class.getName())); HornetQServer server = HornetQServers.newHornetQServer(configuration); server.start();
  • 9. Arquitetura JMS HornetQ Facade Core API Server POJOs
  • 10. Arquitetura Storage Journal Large Messages Paging JMS HornetQ Facade Core API Server Remote Netty Native Stomp Stomp Clients Rest Clients JMS Server Manager Management
  • 11. Arquitetura ● arquivos pre-filled ● libaio ou Java NIO Context Journal HornetQ Server Timed Buffer Async nio libaio JNI Uso de JNI mínimo
  • 12. Arquitetura > POJOs > Embarcável > Injetável por qualquer container de DI ● JBoss Microcontainer ● Spring ● Google Guice
  • 13. Protocolos > Implementação JMS 1.1 spec > RESTful API > STOMP > Transporte HTTP > Transporte inVM > XMPP (pipeline)
  • 14. Funcionalidades > Gerenciamento via JMX > ACKs assíncronos > Agendamento de mensagens > Paginação de mensagens > Suporte a mensagens grandes > Last Value queue > E muito mais em: ● http://community.jboss.org/wiki/HornetQFeatures
  • 15. Componentes > JNDIServer > MBeanServer > Configuration > HornetQSecurityManager > HornetQServer
  • 16. Configurando um Divert > Apenas para queues local x local > Servidor externo: Divert + Bridge Exemplo: <divert name="pedidos-divert"> <address>jms.queue.pedidos</address> <forwarding-address>jms.topic.estatisticas</forwarding-address> <exclusive>false</exclusive> </divert> ●
  • 17.
  • 18.
  • 19. A hora da(o) demo
  • 20. JSR-343, o que vem por aí? > Integração com CDI (JSR-299). > Obrigatoriedade da implementação de RA. > Anotações padronizadas. > Full suporte Java EE 7. > Suporte assíncrono. ● Envio de response depois de um método de callback ser chamado.
  • 21. Performance 300000 250000 200000 ActiveMQ SwiftMQ 150000 HornetQ OpenMQ 100000 50000 0 Mensag/Seg Relatório completo em: http://www.jboss.org/hornetq
  • 22. Performance http://www.spec.org/jms2007/results/jms2007.html
  • 23. SwitchYard ● Novo projeto para a construção da nova geração de ESB. ● Foco em consistência e usabilidade. ● Runtime embarcável ● POJO based ● Integração com CDI
  • 24. Exemplo de Serviço @Service(PedidoService.class) public class PedidoServiceBean implements PedidoService { @Inject @Reference private ItemService itemService; public PedidoAck enviarPedido(Pedido pedido) { Item item = itemService.buscarItem(pedido.getItemId()); // ...... cria ack } }
  • 25. Development Tools ● Seam Forge ● Maven (Hell! XML também) ● JBDS ● Camel Routes
  • 26. Obrigado! > Samuel Tauil samuel@redhat.com http://about.me/samueltauil > Clebert Suconic irc://freenode.net:6667#hornetq http://jboss.org/hornetq http://twitter.com/hornetq http://hornetq.blogspot.com