DeeperintoRabbitMQ• What’samessagingsystem?
• Messagebrokers…
• RabbitMQ/AMQP
• Example
• Simulator/Demo
RabbitMQ
• Amessagebrokerstartedin2007
• AcquiredandcurrentlydevelopedbyPivotalSoLware
• AnAMQPimplementaNoninErlanglanguage
• Hasclientsinmostlanguages,Java,Python,.Net,Ruby,PHP…etc
• MulNprotocol,AMQP,STOMP,MQTT
AdvancedMessageQueuingProtocol(AMQP)
• Openstandardformessagingsystems
• LikeHTTP,FTPandSMTP,AMQPdefinesthedataformatoverthewire.DifferentimplementaNonsareinteroperable
• RunsontopofTCP,reliable,persistentopNons,highavailability,flexiblerouNng,mulNpleclients
• UnlikeJMS,AMQPisaprotocolnotanAPI
AdvancedMessageQueuingProtocol(AMQP)
• Basicconcepts
• Exchange
• Queue
• Binding
• RouNngKey
• Exchanges
• Direct
• Fanout
• Topic
AdvancedMessageQueuingProtocol(AMQP)
• Exchange:Direct
MessageswithrouNngkey:1. email2. sms emailsms
AdvancedMessageQueuingProtocol(AMQP)
• Exchange:Topic
MessageswithrouNngkey:1. email.thankyou2. sms.verify
email.thankyouemail.thankyousms.verifysms.verify
bid.ly
• PostanaucNon
• SubscribetoaucNonchannelslike“rolexwatched”or“ray-banglasses”
• ReceivenewaucNonsonsubscribedchannelsandstartbidding
AMQPReliability
• Publisher(sender)getsa“confirm”fromRabbitMQ
• Subscriber(receiver)sendan“ack”uponsuccessfullyprocessingthemessage
• Messagesun-ackedstayonrabbitas“unacked”eitherunNlsubscriber“acks”ormessageNmeouts
Resources
• hgps://www.rabbitmq.com/
• hgp://cloudamqp.com
• hgp://lanyrd.com/2013/pycon/scdyrp/(MessagingatInstagram)
Summary
• Messagebrokers
• AMQP,exchange,queue,bindingandrouNngkeys
• Exchangetypes,direct,fanoutandtopic