Your SlideShare is downloading. ×
Geeky.week3.rabbitmq
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Geeky.week3.rabbitmq

291
views

Published on

Published in: Technology, Self Improvement

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
291
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. RabbitMQ 3th WEEK SATURDAY, JULY 06, 2013 – SUNDAY, JULY 07, 2013 GEEK ACADEMY 2013
  • 2. RABBITMQ GEEK ACADEMY 2013
  • 3. MQ History 1985 1993 TIB IBM MQSeries RabbitMQ 2006
  • 4. A B C D E Consumers Producers Broker Exchanges Queues F G H I J Bindings Channel Direct Exchange Fanout Exchange Topic Exchange KEY WORDS
  • 5. 01. EXCHANGES Exchanges are where producers publish their messages. 02. QUEUES Queues are where the messages end up and are received by consumers. 03. BINDINDS Bindings are how the messages get routed from the exchange to particular queues AMQP ELEMENTS
  • 6. CONSUMERS AND PRODUCERS 10 % 100 % 10 % 10% 10 % 10 % 10% NOT ABOUT ECONOMICS AM LP CM KM YH R M HT Producers create messages and publish (send) them to a broker server. Then the broker will determine who(consumers) should get a copy of messages. Message = Payload + Label
  • 7. FLOWS MessageProducer Exchange QueueBinding Consumer
  • 8. "lightweight connections that share a single TCP connection". CHANNELS What?
  • 9. DEFAULT EXCHANGE producer broker consumer consumer consumer geeky2 geeky1 geeky3
  • 10. Demo ConnectionFactory factory = new ConnectionFactory(); factory.setHost(RABBITMQ_HOST); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); boolean durable = true; channel.queueDeclare(queue, durable, false, isAutoDelete, null); Producer: o channel.basicPublish( "", queue, null, message.getBytes()); Consumer: o QueueingConsumer consumer = new QueueingConsumer(channel); o channel.basicConsume(queue, autoAck, consumer); o QueueingConsumer.Delivery delivery = consumer.nextDelivery(); o String message = new String(delivery.getBody());
  • 11. DIRECT EXCHANGE producer broker consumer consumer geeky.jvm geeky.groovy geeky.jvm geeky.java
  • 12. Demo ConnectionFactory factory = new ConnectionFactory(); factory.setHost(RABBITMQ_HOST); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.exchangeDeclare(EXCHANGE_NAME, "direct"); Producer: o channel.basicPublish( exchangeName, serevity, null, message.getBytes()); Consumer: o channel.queueBind(queueName, EXCHANGE_NAME, severity); o QueueingConsumer consumer = new QueueingConsumer(channel); o channel.basicConsume(queue, autoAck, consumer); o QueueingConsumer.Delivery delivery = consumer.nextDelivery(); o String message = new String(delivery.getBody());
  • 13. FANOUT EXCHANGE producer broker consumer consumer consumer Hello geeky Hello geeky Hellogeeky
  • 14. Demo ConnectionFactory factory = new ConnectionFactory(); factory.setHost(RABBITMQ_HOST); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.exchangeDeclare(EXCHANGE_NAME, "fanout"); Producer: o channel.basicPublish( EXCHANGE_NAME, "", null, message.getBytes()); Consumer: o String queueName = channel.queueDeclare().getQueue(); o channel.queueBind(queueName, EXCHANGE_NAME, ""); o QueueingConsumer consumer = new QueueingConsumer(channel); o channel.basicConsume(queue, isAck, consumer); o QueueingConsumer.Delivery delivery = consumer.nextDelivery(); o String message = new String(delivery.getBody());
  • 15. TOPIC EXCHANGE producer broker consumer consumer consumer geeky.# *.java.* *.groovy.* *.*.spring
  • 16. Demo ConnectionFactory factory = new ConnectionFactory(); factory.setHost(RABBITMQ_HOST); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); boolean durable = true; channel.exchangeDeclare(EXCHANGE_NAME, "topic"); Producer: o channel.basicPublish( EXCHANGE_NAME, routingKey, null, message.getBytes()); Consumer: o String queueName = channel.queueDeclare().getQueue(); o channel.queueBind(queueName, EXCHANGE_NAME, bindingKey); o QueueingConsumer consumer = new QueueingConsumer(channel); o channel.basicConsume(queue, isAck, consumer); o QueueingConsumer.Delivery delivery = consumer.nextDelivery(); o String message = new String(delivery.getBody());
  • 17. Rabbitmqctl o rabbitmqctl start o rabbitmqctl stop o rabbitmqctl list_queues o rabbitmqctl list_exchanges o rabbitmqctl list_bindings o rabbitmqctl list_users o rabbitmqctl add_user [username] [password] o rabbitmqctl delete_user [username] o rabbitmqctl changepassword [username] [new password]
  • 18. 01. http://www.springsource.org/spring-amqp 03.http://www.rabbitmq.com 04.http://hg.rabbitmq.com/rabbitmq-java-client/ READ MORE... 02.https://github.com/SpringSource/spring-amqp 05.https://github.com/up1/geeky_week3_demo
  • 19. GEEK ACADEMY 2013
  • 20. THANK YOU FOR YOUR TIME GEEK ACADEMY 2013