Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Europycon2011: Implementing distributed application using ZeroMQ

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Overview of ZeroMQ
Overview of ZeroMQ
Wird geladen in …3
×

Hier ansehen

1 von 61 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Europycon2011: Implementing distributed application using ZeroMQ (20)

Anzeige

Aktuellste (20)

Europycon2011: Implementing distributed application using ZeroMQ

  1. 1. Implementing distributed applications with ...and some other bad guys... Crippa Francesco
  2. 2. Scalability vs Complexity
  3. 3. Scalability vs Complexity what we want Complexity 1 Thread 2 Threads 2 Nodes 4 Nodes
  4. 4. Scalability vs Complexity reality Complexity 1 Thread 2 Threads 2 Nodes 4 Nodes
  5. 5. The Q in ØMQ
  6. 6. The Ø in ØMQ
  7. 7. The Ø in ØMQ Zero Broker
  8. 8. The Ø in ØMQ Zero Broker Zero Latency (as close as possible...)
  9. 9. The Ø in ØMQ Zero Broker Zero Latency (as close as possible...) Zero administration
  10. 10. The Ø in ØMQ Zero Broker Zero Latency (as close as possible...) Zero administration Zero cost
  11. 11. The Ø in ØMQ Zero Broker Zero Latency (as close as possible...) Zero administration Zero cost Zero waste
  12. 12. Sockets
  13. 13. Sockets Unicast transports (inproc, ipc, tcp)
  14. 14. Sockets Unicast transports (inproc, ipc, tcp) Multicast transports (pgm or epgm)
  15. 15. Sockets Unicast transports (inproc, ipc, tcp) Multicast transports (pgm or epgm) connect() and bind() are independent
  16. 16. Sockets Unicast transports (inproc, ipc, tcp) Multicast transports (pgm or epgm) connect() and bind() are independent They are asynchronous (with queues)
  17. 17. Sockets Unicast transports (inproc, ipc, tcp) Multicast transports (pgm or epgm) connect() and bind() are independent They are asynchronous (with queues) They express a certain "messaging pattern"
  18. 18. Sockets Unicast transports (inproc, ipc, tcp) Multicast transports (pgm or epgm) connect() and bind() are independent They are asynchronous (with queues) They express a certain "messaging pattern" They are not necessarily one-to-one
  19. 19. ...and, of course... Cross Platform (Linux, Windows, Mac, etc...) Multiple Languages (c, c++, python, java, ruby, erlang, php, perl, ada, c#, lua, scala, objective-c, go, haskell, racket, cl, basic...) OpenSource
  20. 20. if you have a laptop... http://www.zeromq.org/ http://zguide.zeromq.org/
  21. 21. Basic Message Patterns
  22. 22. Server
  23. 23. Client
  24. 24. Demo
  25. 25. Basic Message Patterns
  26. 26. Server
  27. 27. Client
  28. 28. Demo
  29. 29. Publisher Subscriber The PUB-SUB socket pair is asynchronous when you use a SUB socket you must set a subscription using zmq_setsockopt and SUBSCRIBE "slow joiner" symptom
  30. 30. Basic Message Patterns
  31. 31. Ventilator
  32. 32. Worker
  33. 33. Sink
  34. 34. Demo
  35. 35. Workers Always synchronize the start of the batch The ventilator's PUSH socket distributes tasks to workers (load balancing) The sink's PULL socket collects results from workers evenly (fair-queuing)
  36. 36. Fair-Queuing
  37. 37. Basic Message Patterns
  38. 38. Send messages back
  39. 39. Demo
  40. 40. Allowed Patterns PUB and SUB DEALER and DEALER REQ and REP ROUTER and ROUTER REQ and ROUTER PUSH and PULL DEALER and REP PAIR and PAIR DEALER and ROUTER
  41. 41. Scalability
  42. 42. Scalability
  43. 43. Scalability
  44. 44. Scalability
  45. 45. A Publish-Subscribe Proxy
  46. 46. Built-in Devices QUEUE (request-reply broker.) FORWARDER (pub-sub proxy server) STREAMER (like FORWARDER but for pipeline flows)
  47. 47. Dynamic Scalability...
  48. 48. Dynamic Scalability... SCA LOW LAB ILI !!!! TY
  49. 49. Dynamic Scalability...
  50. 50. ØMQ : Sockets = Python : C++

Hinweis der Redaktion

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×