TDC 2011 - HornetQ e SwitchYard

1,246 views
1,140 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,246
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TDC 2011 - HornetQ e SwitchYard

  1. 1. Mensageria com HornetQ eo futuro do projeto SwitchYardSamuel TauilMiddleware Instructor, Red Hat
  2. 2. WHO AM I?
  3. 3. E finalmente o que é JMS e mensageria?API Java que encapsula destinos de mensagense padrões de publicação e leitura de mensagens.Parte da especificação Java EE.
  4. 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. 5. Why so horny? > open source > multiprotocolo > embarcável > foco em performance > clusterizável > assíncrono
  6. 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. 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. 8. Standalone!Configuration configuration = new ConfigurationImpl();configuration.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));HornetQServer server = HornetQServers.newHornetQServer(configuration);server.start();
  9. 9. Arquitetura JMS HornetQ Facade Core API Server POJOs
  10. 10. Arquitetura Storage Journal Large Messages Paging JMS HornetQFacade Core API Server Remote Netty Native Stomp Stomp Clients Rest Clients JMS Server Manager Management
  11. 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. 12. Arquitetura > POJOs > Embarcável > Injetável por qualquer container de DI ● JBoss Microcontainer ● Spring ● Google Guice
  13. 13. Protocolos > Implementação JMS 1.1 spec > RESTful API > STOMP > Transporte HTTP > Transporte inVM > XMPP (pipeline)
  14. 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. 15. Componentes > JNDIServer > MBeanServer > Configuration > HornetQSecurityManager > HornetQServer
  16. 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. 17. A hora da(o) demo
  18. 18. 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.
  19. 19. Performance 300000 250000 200000 ActiveMQ SwiftMQ 150000 HornetQ OpenMQ 100000 50000 0 Mensag/Seg Relatório completo em: http://www.jboss.org/hornetq
  20. 20. Performance http://www.spec.org/jms2007/results/jms2007.html
  21. 21. 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
  22. 22. 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 } }
  23. 23. Development Tools● Seam Forge● Maven (Hell! XML também)● JBDS● Camel Routes
  24. 24. 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

×