Gearman
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
573
On Slideshare
566
From Embeds
7
Number of Embeds
2

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 7

http://www.php-talks.com 6
http://www.php-talks.de 1

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. Les rouages du travail distribué
  • 2.  julien.salleyron@gmail.com ◦ Geek @juguul ◦ Copix Team ◦ Lead developper de l’extension AOP pour PHP* https://github.com/AOP-PHP * Présentation de AOP et AOP-PHP à 15h45 même salle
  • 3. « O Draconian Devil ! Oh Lame Saint. » « Leonardo Da Vinci, The Mona Lisa »
  • 4. ?
  • 5. manager
  • 6. « Quelqu’un de dispo sait faire ça ? »
  • 7. Gearman Worker Worker WorkerJe sais faire « Hello » Je sais faire « Bye » Je sais faire « Hello » Je sais faire « Bye »
  • 8. Tâches Tâches Workers en attente en cours total telnet server port (telnet 127.0.0.1 4730) ◦ Status ◦ Workers
  • 9. Client J’aimerai faire « Hello » ? Gearman Worker Worker Worker « Hello »« Hello » « Bye » « Bye »
  • 10. Moi aussi Bah moije veux faire Client Client Je veux faire « Hello » « Bye » Gearman Worker Worker Worker « Hello » « Hello » « Bye » « Bye »
  • 11. « Quelle est la plus grosse tâche ? »
  • 12. FIFO(First In First Out)
  • 13. FIFO (First In First Out) FIFE(First In First Execute)
  • 14. 12:00:00 -> demande « BonjourMadame »12:00:05 -> demande « HelloTheWorld »12:00:07 <- réponse « HelloTheWorld »12:00:10 <- réponse « BonjourMadame »
  • 15. 12:00:00 -> demande « Bye » (1)12:00:01 -> demande « Bye » (2)12:00:02 -> demande « Bye » (3)12:00:05 <- réponse « bye » (1)12:00:10 <- réponse « bye » (2)12:00:15 <- réponse « bye » (3)
  • 16. Client3Client1 Client2 HIGH Gearman Worker Bye
  • 17. Client2Client1 Client3 LOW Gearman Worker Task
  • 18. 12:00:00 -> demande « Hello » (1)12:00:01 -> demande « Hello » (Low 2)12:00:02 -> demande « Hello » (3)12:00:03 -> demande « Hello » (High 4)12:00:05 <- réponse « Hello » (1)12:00:10 <- réponse « Hello » (4)12:00:15 <- réponse « Hello » (3)12:00:20 <- réponse « Hello » (2)
  • 19. Un manager polyglotte
  • 20.  Création d’un worker qui compte :Appel client d’un worker qui compte :gearman -f wc -h localhost -p 4730
  • 21.  PECL (utilisé dans les slides)pecl install gearman PEARpear install Net_Gearman
  • 22. « Et les workers, ils travaillent sans données ? »
  • 23. Chaine de caractères * * Norme JSON
  • 24. Reconnaissance de QRCode
  • 25. « J’aimerai reconnaitreun QRCode » Gearman « Je sais reconnaitre les QRCode »
  • 26. « Plus de puissance ! Toujours plus de puissance ! »
  • 27. Client Client Gearman WorkerWorker Worker Task1Task1 Task2 Task2
  • 28. Server 1 Server 2 Client Client Gearman WorkerWorker Worker Task1Task1 Task2 Task2Server 3 Server 4
  • 29. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1 WorkerTask1 Task2 Task1 Task2 Task1 Task2 Task2Server 3 Server 4
  • 30. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Task2Server 5 Server 3 Server 4
  • 31. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Worker Worker Worker Task2 Task1 Task1 Task1Server 5 Server 3 Server 4 Server N Server N+1 Server N+2 GearMan 39
  • 32. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Task2Server 5 Server 3 Server 4
  • 33. mais ce n’est pas tout !
  • 34. Le résultat m’importe peu, « just do it » !
  • 35. Client « Tu le feras plus tard »Background Gearman Worker Task
  • 36. Gestion des logs
  • 37. ClientBackground Gearman Worker Envoi log par mail
  • 38. Client « Tant que tu le fais un jour »Background Gearman
  • 39.  Gestion par timeout
  • 40. « Elle est où la liste des tâches à faire »
  • 41. « il reste tout ça à faire »Gearman
  • 42.  gearmand -d -q libsqlite3 --libsqlite3-db ./test.db « ce qu’il reste à faire » BDD Gearman
  • 43. « Tous ensemble, tous ensemble ! Hey !! »
  • 44. Client Task1 + Task1 + Task2 Gearman WorkerWorker Worker Task1Task1 Task2 Task2
  • 45. Tarification multi-produit
  • 46. « Mais il est où ce bug »
  • 47. « les workers ont planté, faut les relancer !!!!!!! »
  • 48. « Au fait, il prends quoien paramètre ton worker ? »
  • 49. Des questions ?