Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Warehouse
Warehouse
Cargando en…3
×

Eche un vistazo a continuación

1 de 23 Anuncio

How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28

Descargar para leer sin conexión

Talk of Bohdan Parshentsev, senior backend engineer at P2H, at Ruby Meditation #28 Kyiv 26.10.2019
Slideshare - **
Next conference - http://www.rubymeditation.com/
This presentation is connected with presentation How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28

Why we need a Rabbit? Let's try to cook it tasty. And what else? - Live demo of several useful dishes. Be ready to use Telegram to have fun with us.

Announcements and conference materials https://www.fb.me/RubyMeditation
News https://twitter.com/RubyMeditation
Photos https://www.instagram.com/RubyMeditation
The stream of Ruby conferences (not just ours) https://t.me/RubyMeditation
* The channel of the organizers of the meetup https://t.me/incredevly

Talk of Bohdan Parshentsev, senior backend engineer at P2H, at Ruby Meditation #28 Kyiv 26.10.2019
Slideshare - **
Next conference - http://www.rubymeditation.com/
This presentation is connected with presentation How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28

Why we need a Rabbit? Let's try to cook it tasty. And what else? - Live demo of several useful dishes. Be ready to use Telegram to have fun with us.

Announcements and conference materials https://www.fb.me/RubyMeditation
News https://twitter.com/RubyMeditation
Photos https://www.instagram.com/RubyMeditation
The stream of Ruby conferences (not just ours) https://t.me/RubyMeditation
* The channel of the organizers of the meetup https://t.me/incredevly

Anuncio
Anuncio

Más Contenido Relacionado

Más de Ruby Meditation (20)

Más reciente (20)

Anuncio

How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28

  1. 1. How to cook Rabbit on Production Bohdan Parshencev Serhiy Nazarov
  2. 2. Without a monolith anywhere!
  3. 3. Expectation Reality
  4. 4. So, where a compromise?
  5. 5. RabbitMQ advantages ● Asynchronous processing ● Flexible routing ● Convenient debugging ● Scalability of consumers and producers ● Resilience to reboots and failures
  6. 6. Need advice
  7. 7. Challenge?
  8. 8. Resource - Action - Context ● Obvious solution ● Easy to solve business problems
  9. 9. How else?
  10. 10. RESOURCE PROCESS STATE context
  11. 11. Setup routing rabbit_connection ||= Bunny.new rabbit_connection.start rabbit_channel = rabbit_connection.create_channel exchange_general = rabbit_channel.headers("rm28.general", durable: true) exchange_space = rabbit_channel.headers("rm28.space", durable: true) serhiy_queue = rabbit_channel.queue("serhiy", durable: true) serhiy_queue.bind(exchange_general, arguments: { speaker: "serhiy", resource: "question", "x-match": :all }) serhiy_queue.bind(exchange_general, arguments: { speaker: "both", resource: "question", "x-match": :all }) bohdan_queue = rabbit_channel.queue("bohdan", durable: true) bohdan_queue.bind(exchange_general, arguments: { speaker: "bohdan", resource: "question", "x-match": :all }) bohdan_queue.bind(exchange_general, arguments: { speaker: "both", resource: "question", "x-match": :all }) exchange_space.bind(exchange_general, arguments: { resource: "message", "x-match": :all }) space_queue = rabbit_channel.queue("space", durable: true) space_queue.bind(exchange_space, arguments: { }) rabbit_connection.close
  12. 12. bohdan_queue = rabbit_channel.queue("bohdan", durable: true) bohdan_queue.bind(exchange_general, arguments: { speaker: "bohdan", resource: "question", "x-match": :all }) bohdan_queue.bind(exchange_general, arguments: { speaker: "both", resource: "question", "x-match": :all })
  13. 13. RPC remote procedure call
  14. 14. RPC stands for Remote Procedure Call. The basic concept of RPC is that some information is sent and later some information is received. There is a one to one correlation between those two categories of information under normal circumstances. This mirrors the basic paradigm of imperative programming: the function call. The difference is RPC is typically used to exchange information between two systems separated by a network connection or another communication medium. The two systems may not even be written in the same programming language.
  15. 15. DEMO
  16. 16. https://rabbit.rm28.demo.qpard.com

×