TDC 2011 - HornetQ e SwitchYard
-
Upload
samuel-tauil -
Category
Technology
-
view
1.066 -
download
3
Transcript of TDC 2011 - HornetQ e SwitchYard
![Page 1: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/1.jpg)
Mensageria com HornetQ e o futuro do projeto SwitchYard
Samuel Tauil Middleware Instructor, Red Hat
![Page 2: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/2.jpg)
WHO AM I?
![Page 3: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/3.jpg)
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.
![Page 4: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/4.jpg)
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.
![Page 5: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/5.jpg)
Why so horny?
> open source
> multiprotocolo
> embarcável
> foco em performance
> clusterizável
> assíncrono
![Page 6: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/6.jpg)
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
![Page 7: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/7.jpg)
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.
![Page 8: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/8.jpg)
Standalone!
Configuration configuration = new ConfigurationImpl();
configuration.getAcceptorConfigurations().add(
new TransportConfiguration(InVMAcceptorFactory.class.getName()));
HornetQServer server = HornetQServers.newHornetQServer(configuration);
server.start();
![Page 9: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/9.jpg)
Arquitetura
JMSJMSFacadeFacade Core APICore API
HornetQHornetQServerServer
POJOsPOJOs
![Page 10: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/10.jpg)
Arquitetura
StorageStorageJournalJournal
Large MessagesLarge Messages
PagingPaging
RemoteRemoteNettyNetty
NativeNative
StompStomp
ManagementManagement
Stomp ClientsStomp Clients
Rest ClientsRest Clients JMS Server JMS Server ManagerManager
JMSJMSFacadeFacade Core APICore API
HornetQHornetQServerServer
![Page 11: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/11.jpg)
Arquitetura
HornetQHornetQServerServer
JournalJournalContextContext
Timed BufferTimed Buffer
nionio libaiolibaio
JNIJNIUso de JNI
mínimo
Async
● arquivos pre-filled● libaio ou Java NIO
![Page 12: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/12.jpg)
Arquitetura
> POJOs
> Embarcável
> Injetável por qualquer container de DI● JBoss Microcontainer● Spring● Google Guice
![Page 13: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/13.jpg)
Protocolos
> Implementação JMS 1.1 spec
> RESTful API
> STOMP
> Transporte HTTP
> Transporte inVM
> XMPP (pipeline)
![Page 14: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/14.jpg)
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
![Page 15: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/15.jpg)
Componentes
> JNDIServer
> MBeanServer
> Configuration
> HornetQSecurityManager
> HornetQServer
![Page 16: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/16.jpg)
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>
●
![Page 17: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/17.jpg)
![Page 18: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/18.jpg)
![Page 19: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/19.jpg)
A hora da(o) demo
![Page 20: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/20.jpg)
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.
![Page 21: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/21.jpg)
Performance
Mensag/Seg0
50000
100000
150000
200000
250000
300000
ActiveMQSwiftMQHornetQOpenMQ
Relatório completo em: http://www.jboss.org/hornetq
![Page 22: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/22.jpg)
Performance
http://www.spec.org/jms2007/results/jms2007.html
![Page 23: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/23.jpg)
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
![Page 24: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/24.jpg)
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
}
}
![Page 25: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/25.jpg)
Development Tools
● Seam Forge● Maven (Hell! XML também)● JBDS● Camel Routes
![Page 26: TDC 2011 - HornetQ e SwitchYard](https://reader033.fdocumentos.com/reader033/viewer/2022042700/559af1581a28ab59658b45cc/html5/thumbnails/26.jpg)
Obrigado!
> Samuel Tauil
http://about.me/samueltauil
> Clebert Suconic
irc://freenode.net:6667#hornetqhttp://jboss.org/hornetq
http://twitter.com/hornetq
http://hornetq.blogspot.com