SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
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/

Mais conteúdo relacionado

Mais procurados

A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
George Guimarães
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Denis Storti da Silva
 

Mais procurados (8)

Roteament
RoteamentRoteament
Roteament
 
Redes 02 - enlace
Redes   02 - enlaceRedes   02 - enlace
Redes 02 - enlace
 
A Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCampA Arte do Deployment - WebDevCamp
A Arte do Deployment - WebDevCamp
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
 
Ruby no tucupi e Rails com farinha
Ruby no tucupi e Rails com farinhaRuby no tucupi e Rails com farinha
Ruby no tucupi e Rails com farinha
 
Controle de congestionamento tcp
Controle de congestionamento tcpControle de congestionamento tcp
Controle de congestionamento tcp
 
Multipath QUIC: A Deployable Multipath Transport Protocol
Multipath QUIC: A Deployable Multipath Transport ProtocolMultipath QUIC: A Deployable Multipath Transport Protocol
Multipath QUIC: A Deployable Multipath Transport Protocol
 
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...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
 

Semelhante a Net::RabbitMQ(::Simple)

XMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocolXMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocol
ricardolbr
 
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER
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
Antonio Marcos Alberti
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalin
stalinstm
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
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ós
 
3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET
Vinicius Batista
 

Semelhante a Net::RabbitMQ(::Simple) (20)

Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns
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
 
XMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocolXMPP - Extensible messaging and presence protocol
XMPP - Extensible messaging and presence protocol
 
Message Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQ
 
ENSINANDO QUALIDADE DE SERVIÇO NA INTERNET COM O OPNET MODELER
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
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcamb
 
Camada de transporte Aula de redes
Camada de transporte  Aula de redesCamada de transporte  Aula de redes
Camada de transporte Aula de redes
 
O protocolo SCTP para o transporte de vídeo codificado escalonável
O protocolo SCTP para o transporte de vídeo codificado escalonávelO protocolo SCTP para o transporte de vídeo codificado escalonável
O protocolo SCTP para o transporte de vídeo codificado escalonável
 
Microservices Architecture Workshop
Microservices Architecture WorkshopMicroservices Architecture Workshop
Microservices Architecture Workshop
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores
 
XML-RPC.pdf
XML-RPC.pdfXML-RPC.pdf
XML-RPC.pdf
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalin
 
JBoss Clustering
JBoss ClusteringJBoss Clustering
JBoss Clustering
 
ENSINANDO REDES ATM EM LABORATÓRIO
ENSINANDO REDES ATM EM LABORATÓRIOENSINANDO REDES ATM EM LABORATÓRIO
ENSINANDO REDES ATM EM LABORATÓRIO
 
Akka basics
Akka basicsAkka basics
Akka basics
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
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
 
3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET
 
Multicast on Cisco Network
Multicast on Cisco NetworkMulticast on Cisco Network
Multicast on Cisco Network
 
http https Professor Marlon Sales
http https Professor Marlon Saleshttp https Professor Marlon Sales
http https Professor Marlon Sales
 
Intro_redes.pdf
Intro_redes.pdfIntro_redes.pdf
Intro_redes.pdf
 
PHP with Service BUS (RabbitMQ/Redis/MongoDB) - IMasters PHP Experience 2016
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
 

Mais de Thiago Rondon

IOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and AccountabilityIOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and Accountability
Thiago Rondon
 
Dados abertos é inovação
Dados abertos é inovaçãoDados abertos é inovação
Dados abertos é inovação
Thiago Rondon
 
Provisionamento orquestrado nas nuvens com Juju
Provisionamento orquestrado nas nuvens com JujuProvisionamento orquestrado nas nuvens com Juju
Provisionamento orquestrado nas nuvens com Juju
Thiago Rondon
 
introducción a la Red Latinoamericana
introducción a la Red Latinoamericanaintroducción a la Red Latinoamericana
introducción a la Red Latinoamericana
Thiago Rondon
 
TDC 2012 - You, Me and Opendata
TDC 2012 - You, Me and Opendata TDC 2012 - You, Me and Opendata
TDC 2012 - You, Me and Opendata
Thiago Rondon
 
You, me and Opendata - v2
You, me and Opendata - v2You, me and Opendata - v2
You, me and Opendata - v2
Thiago Rondon
 
OGP: You, Me and Opendata
OGP: You, Me and OpendataOGP: You, Me and Opendata
OGP: You, Me and Opendata
Thiago Rondon
 
Statim, time series interface for Perl.
Statim, time series interface for Perl.Statim, time series interface for Perl.
Statim, time series interface for Perl.
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 !
Opendata - Não posso fazer tijolos sem barro !
Thiago Rondon
 
Dados abertos do wikipedia ao governo
Dados abertos do wikipedia ao governoDados abertos do wikipedia ao governo
Dados abertos do wikipedia ao governo
Thiago Rondon
 
Para onde foi o meu dinheiro ?
Para onde foi o meu dinheiro ?Para onde foi o meu dinheiro ?
Para onde foi o meu dinheiro ?
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.
Datos abiertos, Gobierno y la sociedad en conjunto.
Thiago Rondon
 

Mais de Thiago Rondon (20)

AppCívico - Tecnologias cívicas estão impactando políticas públicas
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
 
Democracia nas eleições
Democracia nas eleiçõesDemocracia nas eleições
Democracia nas eleições
 
IOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and AccountabilityIOTA - Open Indicators of Transparency and Accountability
IOTA - Open Indicators of Transparency and Accountability
 
Dados abertos é inovação
Dados abertos é inovaçãoDados abertos é inovação
Dados abertos é inovação
 
YAPC::2014 Accountability
YAPC::2014 AccountabilityYAPC::2014 Accountability
YAPC::2014 Accountability
 
IOTA
IOTAIOTA
IOTA
 
Docker
DockerDocker
Docker
 
Auto Scaling AWS
Auto Scaling AWSAuto Scaling AWS
Auto Scaling AWS
 
Provisionamento orquestrado nas nuvens com Juju
Provisionamento orquestrado nas nuvens com JujuProvisionamento orquestrado nas nuvens com Juju
Provisionamento orquestrado nas nuvens com Juju
 
introducción a la Red Latinoamericana
introducción a la Red Latinoamericanaintroducción a la Red Latinoamericana
introducción a la Red Latinoamericana
 
Iota
IotaIota
Iota
 
TDC 2012 - You, Me and Opendata
TDC 2012 - You, Me and Opendata TDC 2012 - You, Me and Opendata
TDC 2012 - You, Me and Opendata
 
You, me and Opendata - v2
You, me and Opendata - v2You, me and Opendata - v2
You, me and Opendata - v2
 
OGP: You, Me and Opendata
OGP: You, Me and OpendataOGP: You, Me and Opendata
OGP: You, Me and Opendata
 
Onde Acontece ?
Onde Acontece ?Onde Acontece ?
Onde Acontece ?
 
Statim, time series interface for Perl.
Statim, time series interface for Perl.Statim, time series interface for Perl.
Statim, time series interface for Perl.
 
Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !Opendata - Não posso fazer tijolos sem barro !
Opendata - Não posso fazer tijolos sem barro !
 
Dados abertos do wikipedia ao governo
Dados abertos do wikipedia ao governoDados abertos do wikipedia ao governo
Dados abertos do wikipedia ao governo
 
Para onde foi o meu dinheiro ?
Para onde foi o meu dinheiro ?Para onde foi o meu dinheiro ?
Para onde foi o meu dinheiro ?
 
Datos abiertos, Gobierno y la sociedad en conjunto.
Datos abiertos, Gobierno y la sociedad en conjunto.Datos abiertos, Gobierno y la sociedad en conjunto.
Datos abiertos, Gobierno y la sociedad en conjunto.
 

Último

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Net::RabbitMQ(::Simple)