TDC 2011 - HornetQ e SwitchYard

  • View
    1.065

  • Download
    3

Embed Size (px)

Text of TDC 2011 - HornetQ e SwitchYard

  • Mensageria com HornetQ e o futuro do projeto SwitchYardSamuel Tauil Middleware Instructor, Red Hat

  • WHO AM I?

  • E finalmente o que JMS e mensageria?

    API Java que encapsula destinos de mensagens e padres de publicao e leitura de mensagens.

    Parte da especificao Java EE.

  • Mas e o JBoss Messaging?

    > HornetQ o JBoss Messaging 2.> JBM tm 95%+ de diferena no codebase.> EOL, novas funcionalidades no HornetQ.> Persistncia em BD.> Suportado no JBoss EAP.

  • Why so horny?

    > open source> multiprotocolo> embarcvel> foco em performance> clusterizvel> assncrono

  • Usabilidade

    > Core API simples> Configurao rpida e fcil> Documentao completa (portugus em breve)> Grande quantidade de exemplos> Dependncias reduzidas

  • Standalone!

    > No precisa de um Application Server.> Integrao JBoss AS 4.x e 5.x via JCA Adapter. @ResourceAdapter("hornetq-ra.rar")> JMS Provider padro no JBoss AS 6.> Zero dependncias 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

    JMSJMSFacadeFacade Core APICore API

    HornetQHornetQServerServer

    POJOsPOJOs

  • Arquitetura

    StorageStorageJournalJournal

    Large MessagesLarge MessagesPagingPaging

    RemoteRemoteNettyNettyNativeNativeStompStomp

    ManagementManagement

    Stomp ClientsStomp Clients

    Rest ClientsRest Clients JMS Server JMS Server ManagerManager

    JMSJMSFacadeFacade Core APICore API

    HornetQHornetQServerServer

  • Arquitetura

    HornetQHornetQServerServer

    JournalJournalContextContext

    Timed BufferTimed Buffer

    nionio libaiolibaioJNIJNI Uso de JNI

    mnimo

    Async

    arquivos pre-filled libaio ou Java NIO

  • Arquitetura

    > POJOs> Embarcvel> Injetvel por qualquer container de DI JBoss Microcontainer Spring Google Guice

  • Protocolos

    > Implementao JMS 1.1 spec> RESTful API> STOMP > Transporte HTTP> Transporte inVM> XMPP (pipeline)

  • Funcionalidades

    > Gerenciamento via JMX> ACKs assncronos> Agendamento de mensagens> Paginao 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: jms.queue.pedidos

    jms.topic.estatisticas

    false

  • A hora da(o) demo

  • JSR-343, o que vem por a?

    > Integrao com CDI (JSR-299).> Obrigatoriedade da implementao de RA.> Anotaes padronizadas.> Full suporte Java EE 7.> Suporte assncrono. Envio de response depois de um mtodo de

    callback ser chamado.

  • Performance

    Mensag/Seg0

    50000

    100000

    150000

    200000

    250000

    300000

    ActiveMQSwiftMQHornetQOpenMQ

    Relatrio completo em: http://www.jboss.org/hornetq

  • Performance

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

  • SwitchYard

    Novo projeto para a construo da nova gerao de ESB.

    Foco em consistncia e usabilidade. Runtime embarcvel POJO based Integrao com CDI

  • Exemplo de Servio@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 tambm) JBDS Camel Routes

  • Obrigado!

    > Samuel Tauilsamuel@redhat.com http://about.me/samueltauil

    > Clebert Suconicirc://freenode.net:6667#hornetq

    http://jboss.org/hornetqhttp://twitter.com/hornetqhttp://hornetq.blogspot.com

    logo slideSlide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26