Net::RabbitMQ(::Simple)

Thiago Rondon
Thiago RondonCEO eokoe.com at EOKOE
Net::RabbitMQ(::Simple)
twitter: @thiagorondon - Thiago Rondon <thiago@aware.com.br>



       Encontro Técnico - Rio Perl Mongers 2010
Agenda - soluções em
       filas.
http://www.flickr.com/photos/btsunami/1204911091/
Message


broker
MOM
- message-oriented middleware -
Interoperabiliade e
Tarefas   assíncronas.
wire-level
store
and forward
and
Publish
  Subscribe
Pointto
  Point
Topic/Content

 Based
shift vs @_
anycast
multiplexing
virtualhost
chaves vs
metadata
“heartbeat”
Persistência,
Prioridades e
 Confiança.
Na teoria, o
protocolo /wire-level/


AMQP
Publisher                message




         {
             Exchange
Broker       Bindings:    [...]
             Queues:

Consumer:                message
Model

 Session

Transport
Analogia utilizada na
especificação do AMQP.
Uma mensagem AMQP
é como uma mensagem
      de e-mail.
Fila de mensagens é
como um mailbox.
Consumidor é como
um leitor de e-mail, que
 pode buscar e apagar
        e-mails.
Exchange é como um
       MTA.
Routing Key é como o
   To:, Cc: ou Bcc:
Cada instancia do
Exchange é como se
 fosse um processo
  MTA “separado”
O binding é como se
fosse uma entrada de
    rota no MTA.
As   diferenças.
Habilidade para criação
     em tempo de
  execução, de filas,
  exchanges e rotas.
Estudo de caso.
Topic Exchange.
Routing keys:
 sp.noticias, sp.tempo,
rio.noticias, rio.tempo.
Binding Keys:
    sp.# e rio.#
#.noticias e #.tempo
Estratégias para os
  consumidores.
http://www.flickr.com/photos/21569450@N06/3299124233/
Net::RabbitMQ
use Net::RabbitMQ;
my $mq = Net::RabbitMQ->new();
$mq->connect("localhost", { user =>

 "guest", password => "guest" });
$mq->channel_open(1);
$mq->publish(1, "queuename", "Hi

 there!");
Resolvi, rabiscar um
módulo para simplificar
      aprender.
E também para saber
um pouco mais sobre
   Devel::Declare.
mqconnect();
exchange
{ name => ‘foo’ };
publish {

 queue => ‘baz’,

 route => ‘route_baz’,

 message => ‘foo’ };
consume;
get {

 options => {

 
 routing_keys => ‘perl.#’;
}};
tx;
rollback;
commit;
Veja o diretório de
testes, para os
    exemplos.
use Net::RabbitMQ::Simple;
mqconnect;
publish { queue => ‘queuename’,
message => ‘Hi there!’ };




                =
use Net::RabbitMQ;
my $mq = Net::RabbitMQ->new();
$mq->connect("localhost", { user =>

 "guest", password => "guest" });
$mq->channel_open(1);
$mq->publish(1, "queuename", "Hi

 there!");
TODO
http://github.com/maluco

http://search.cpan.org/dist/Net-
       RabbitMQ-Simple/
1 of 53

Recommended

SOA by
SOASOA
SOAPedro Alves Jr.
347 views21 slides
Aula 3 (parte 2) by
Aula 3 (parte 2)Aula 3 (parte 2)
Aula 3 (parte 2)Henrique Quirino
762 views5 slides
Exercicio rossana by
Exercicio rossanaExercicio rossana
Exercicio rossanaFernando A Santos
3.9K views4 slides
Lista 03 respostas by
Lista 03 respostasLista 03 respostas
Lista 03 respostasForça Tauá
1.8K views4 slides
O gerenciamento de fila com RabbitMQ by
O gerenciamento de fila com RabbitMQO gerenciamento de fila com RabbitMQ
O gerenciamento de fila com RabbitMQLucien Carbonare Jospin
902 views16 slides
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição by
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoRonildo Oliveira
9.6K views15 slides

More Related Content

What's hot

Roteament by
RoteamentRoteament
Roteamentredesinforma
563 views33 slides
Redes 02 - enlace by
Redes   02 - enlaceRedes   02 - enlace
Redes 02 - enlaceChristopher Cerqueira
55 views16 slides
A Arte do Deployment - WebDevCamp by
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampGeorge Guimarães
377 views26 slides
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1 by
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Denis Storti da Silva
563 views58 slides
Ruby no tucupi e Rails com farinha by
Ruby no tucupi e Rails com farinhaRuby no tucupi e Rails com farinha
Ruby no tucupi e Rails com farinhas4nx
678 views43 slides
Controle de congestionamento tcp by
Controle de congestionamento tcpControle de congestionamento tcp
Controle de congestionamento tcpThiago Inacio de Matos
13.9K views13 slides

What's hot(8)

Ruby no tucupi e Rails com farinha by s4nx
Ruby no tucupi e Rails com farinhaRuby no tucupi e Rails com farinha
Ruby no tucupi e Rails com farinha
s4nx 678 views
Multipath QUIC: A Deployable Multipath Transport Protocol by Matheus Donizete
Multipath QUIC: A Deployable Multipath Transport ProtocolMultipath QUIC: A Deployable Multipath Transport Protocol
Multipath QUIC: A Deployable Multipath Transport Protocol
Matheus Donizete208 views
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band... by Helton Franco
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Helton Franco1.4K views

Similar to Net::RabbitMQ(::Simple)

Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns by
Divirta-se com Apache Camel, Twitter e Enterprise Integration PatternsDivirta-se com Apache Camel, Twitter e Enterprise Integration Patterns
Divirta-se com Apache Camel, Twitter e Enterprise Integration PatternsBruno Borges
912 views20 slides
XMPP - Extensible messaging and presence protocol by
XMPP - Extensible messaging and presence protocolXMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocolricardolbr
1.4K views33 slides
Message Broker & .Net Core - Introdução ao RabbitMQ by
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQLuiz Carlos Faria
893 views46 slides
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER by
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELERENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELERAntonio Marcos Alberti
831 views5 slides
AAB303 - Windows Communication Foundation - wcamb by
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcambMicrosoft Brasil
500 views41 slides
Camada de transporte Aula de redes by
Camada de transporte  Aula de redesCamada de transporte  Aula de redes
Camada de transporte Aula de redesJefferson Macena
90 views5 slides

Similar to Net::RabbitMQ(::Simple)(20)

Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns by Bruno Borges
Divirta-se com Apache Camel, Twitter e Enterprise Integration PatternsDivirta-se com Apache Camel, Twitter e Enterprise Integration Patterns
Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns
Bruno Borges912 views
XMPP - Extensible messaging and presence protocol by ricardolbr
XMPP - Extensible messaging and presence protocolXMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocol
ricardolbr1.4K views
Message Broker & .Net Core - Introdução ao RabbitMQ by Luiz Carlos Faria
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQ
Luiz Carlos Faria893 views
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER by Antonio Marcos Alberti
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELERENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER
AAB303 - Windows Communication Foundation - wcamb by Microsoft Brasil
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcamb
Microsoft Brasil500 views
Analisando O Caminho Dos Pacotes No Wireshark Stalin by stalinstm
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalin
stalinstm6.3K views
Redes de computadores II - 4.Camada de Transporte TCP e UDP by Mauro Tapajós
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Mauro Tapajós6.7K views
Multicast on Cisco Network by home
Multicast on Cisco NetworkMulticast on Cisco Network
Multicast on Cisco Network
home2.3K views
http https Professor Marlon Sales by marloninternet
http https Professor Marlon Saleshttp https Professor Marlon Sales
http https Professor Marlon Sales
marloninternet632 views
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016 by Alexandre Brandão Lustosa
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016

More from Thiago Rondon

AppCívico - Tecnologias cívicas estão impactando políticas públicas by
AppCívico - Tecnologias cívicas estão impactando políticas públicasAppCívico - Tecnologias cívicas estão impactando políticas públicas
AppCívico - Tecnologias cívicas estão impactando políticas públicasThiago Rondon
524 views15 slides
Democracia nas eleições by
Democracia nas eleiçõesDemocracia nas eleições
Democracia nas eleiçõesThiago Rondon
155 views34 slides
IOTA - Open Indicators of Transparency and Accountability by
IOTA - Open Indicators of Transparency and AccountabilityIOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and AccountabilityThiago Rondon
608 views11 slides
Dados abertos é inovação by
Dados abertos é inovaçãoDados abertos é inovação
Dados abertos é inovaçãoThiago Rondon
432 views13 slides
YAPC::2014 Accountability by
YAPC::2014 AccountabilityYAPC::2014 Accountability
YAPC::2014 AccountabilityThiago Rondon
719 views37 slides
IOTA by
IOTAIOTA
IOTAThiago Rondon
638 views25 slides

More from Thiago Rondon(20)

AppCívico - Tecnologias cívicas estão impactando políticas públicas by Thiago Rondon
AppCívico - Tecnologias cívicas estão impactando políticas públicasAppCívico - Tecnologias cívicas estão impactando políticas públicas
AppCívico - Tecnologias cívicas estão impactando políticas públicas
Thiago Rondon524 views
Democracia nas eleições by Thiago Rondon
Democracia nas eleiçõesDemocracia nas eleições
Democracia nas eleições
Thiago Rondon155 views
IOTA - Open Indicators of Transparency and Accountability by Thiago Rondon
IOTA - Open Indicators of Transparency and AccountabilityIOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and Accountability
Thiago Rondon608 views
Dados abertos é inovação by Thiago Rondon
Dados abertos é inovaçãoDados abertos é inovação
Dados abertos é inovação
Thiago Rondon432 views
YAPC::2014 Accountability by Thiago Rondon
YAPC::2014 AccountabilityYAPC::2014 Accountability
YAPC::2014 Accountability
Thiago Rondon719 views
Provisionamento orquestrado nas nuvens com Juju by Thiago Rondon
Provisionamento orquestrado nas nuvens com JujuProvisionamento orquestrado nas nuvens com Juju
Provisionamento orquestrado nas nuvens com Juju
Thiago Rondon472 views
introducción a la Red Latinoamericana by Thiago Rondon
introducción a la Red Latinoamericanaintroducción a la Red Latinoamericana
introducción a la Red Latinoamericana
Thiago Rondon400 views
TDC 2012 - You, Me and Opendata by Thiago Rondon
TDC 2012 - You, Me and Opendata TDC 2012 - You, Me and Opendata
TDC 2012 - You, Me and Opendata
Thiago Rondon1.2K views
You, me and Opendata - v2 by Thiago Rondon
You, me and Opendata - v2You, me and Opendata - v2
You, me and Opendata - v2
Thiago Rondon689 views
OGP: You, Me and Opendata by Thiago Rondon
OGP: You, Me and OpendataOGP: You, Me and Opendata
OGP: You, Me and Opendata
Thiago Rondon394 views
Statim, time series interface for Perl. by Thiago Rondon
Statim, time series interface for Perl.Statim, time series interface for Perl.
Statim, time series interface for Perl.
Thiago Rondon528 views
Opendata - Não posso fazer tijolos sem barro ! by Thiago Rondon
Opendata - Não posso fazer tijolos sem barro !Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !
Thiago Rondon491 views
Dados abertos do wikipedia ao governo by Thiago Rondon
Dados abertos do wikipedia ao governoDados abertos do wikipedia ao governo
Dados abertos do wikipedia ao governo
Thiago Rondon764 views
Para onde foi o meu dinheiro ? by Thiago Rondon
Para onde foi o meu dinheiro ?Para onde foi o meu dinheiro ?
Para onde foi o meu dinheiro ?
Thiago Rondon364 views
Datos abiertos, Gobierno y la sociedad en conjunto. by Thiago Rondon
Datos abiertos, Gobierno y la sociedad en conjunto.Datos abiertos, Gobierno y la sociedad en conjunto.
Datos abiertos, Gobierno y la sociedad en conjunto.
Thiago Rondon407 views

Net::RabbitMQ(::Simple)