Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Messages queues - Socloz@PHPForum 2013

1.865 Aufrufe

Veröffentlicht am

1/ Retour d'expérience sur la mise en place d'une message queue pour SoCloz - http://www.socloz.fr.

- première phase : job queue, résolu par la mise en place de beanstalk
- deuxième phase : pub/sub.

Alternatives évaluées : NSQ (en complément de beanstalk) et RabbitMQ.

Adéquation fonctionnelle : léger avantage pour beanstalk (job), égalité (pub/sub)
Simplicité : avantage pour beanstalk/NSQ
Durabilité : avantage RabbitMQ

2/ Etat des lieux des solutions de message queue

Veröffentlicht in: Technologie
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Messages queues - Socloz@PHPForum 2013

  1. 1. Job queues, messages queues état des lieux & retours d'expérience PHP Forum 2013 Jean-François Bustarret (CTO), Sylvain Lassaut (Lead Dev)
  2. 2. SOCLOZ ? Un peu de contexte… 15/11/13 SoCloz - Tous droits réservés 2
  3. 3. Socloz : l’équipe •  •  •  •  •  Fondée en 2010 En ligne depuis novembre 2011 Deuxième levée de fond bouclée 10 personnes (pas de stagiaires) 5 embauches en cours 15/11/13 SoCloz - Tous droits réservés 3
  4. 4. SoCloz : le produit Moteur de recherche de produits en magasin 1 500 000 produits dans plus de 10 000 magasins et 150 enseignes www.socloz.fr SFR Shopping [mobile] Le Guide Mappy Shopping … Un système de réservation Naf-Naf Le Tanneur Guy Degrenne … 15/11/13 SoCloz - Tous droits réservés 4
  5. 5. SoCloz : l’architecture Architecture à base de micro-services Frontend : PHP Symfony2 • Backend : Go/PHP (Erlang) • 14 serveurs récep,on  des  flux   enseigne   frontend   importa,on   API  internes   normalisa,on   enrichissement   indexa,on   15/11/13 SoCloz - Tous droits réservés 5
  6. 6. MESSAGES QUEUES : GÉNÉRALITÉS Principes de bases, patterns d’utilisation et critères de choix 15/11/13 SoCloz - Tous droits réservés 6
  7. 7. Message queues : principe de base Une message queue, comment ça marche ? Serveur  1   consommateur   producteur broker   consommateur   Serveur  2   consommateur   15/11/13 SoCloz - Tous droits réservés 7
  8. 8. Message queues : patterns d’utilisation Point à point (job queue, RPC) consommateur   producteur broker   consommateur   consommateur   15/11/13 SoCloz - Tous droits réservés 8
  9. 9. Message queues : patterns d’utilisation Publish-subscribe / fan-out consommateur   producteur broker   consommateur   consommateur   15/11/13 SoCloz - Tous droits réservés 9
  10. 10. Message queues : patterns d’utilisation Publish-subscribe / fan-out consommateur   producteur broker   consommateur   consommateur   15/11/13 SoCloz - Tous droits réservés 10
  11. 11. Message queues : critères de choix •  Besoins fonctionnels •  •  •  •  Point à point ou fan-out Traitements différés Rejeu/Rejeu différé en cas de plantage de worker Priorités •  Garanties •  •  •  Durabilité & Délivrabilité (plantage broker, consommateur inactif) Garantie d’unicité Garantie d’ordre •  Débit Qu’est ce que je suis capable d’exploiter ? Un outil universel et complexe ou deux outils spécialisés et simples ? 15/11/13 SoCloz - Tous droits réservés 11
  12. 12. PROBLÉMATIQUE #1 Traitement des flux 15/11/13 SoCloz - Tous droits réservés 12
  13. 13. Problématique #1 : traitement des flux Besoin Parallélisation de traitements Solution : beanstalkd •  Job queue (priorité, délai) •  Catégorisation (tubes) •  Protocole simple et robuste : clients disponibles pour la plupart des langages 15/11/13 SoCloz - Tous droits réservés 13
  14. 14. Beanstalk : exemple de code pda/pheanstalk Producteur Consommateur // initialisation $pheanstalk = new Pheanstalk_Pheanstalk( '127.0.0.1' ); $pheanstalk->useTube('test'); // initialisation $pheanstalk = new Pheanstalk_Pheanstalk( '127.0.0.1' ); $pheanstalk->watch('test'); // envoi d'un message $pheanstalk->put("hello world"); 15/11/13 // boucle de traitement des messages while (true) { $job = $pheanstalk->reserve(); try { // traitement ... echo $job->getData(); // suppression $pheanstalk->delete($job); } catch (Exception $e) { // requeue (priorité par défaut, délai 0) $pheanstalk->release($job, null, 0); } } SoCloz - Tous droits réservés 14
  15. 15. Beanstalk : analyse Avantages •  performant : in-memory, event-driven •  facile à mettre en place (pas de conf) Inconvénients •  pas de réplication / cluster •  support durabilité́ minimal / expérimental •  Linux & FreeBSD uniquement 15/11/13 SoCloz - Tous droits réservés 15
  16. 16. PROBLÉMATIQUES #2 ET #3 Statistiques Agents 15/11/13 SoCloz - Tous droits réservés 16
  17. 17. Problématique #3 : statistiques Besoin Décompte des vues produits/ marques/magasins/catégories Solution initiale Ecritures en base depuis le front Maximum 3 écritures de 1 à >100 compteurs sur une page Tops produits/marques/ magasins/catégories Map/Reduce Problèmes •  Trop d’écritures en base •  Coût des map-reduce •  « Tu me ferais le top marques de chaque catégorie ? En temps réel ? » Nouveau besoin Fort volume, haute dispo, faible criticité 15/11/13 SoCloz - Tous droits réservés 17
  18. 18. Problématique #4 : agents Besoin Traitements asynchrones sur les données importées •  •  •  •  •  enrichissement de données (http, …) normalisation géocodage des adresses des magasins téléchargement d’images … Solution initiale Planification (polling) Stockage d’un état en base de données 3 requêtes à chaque planification : •  Nouvelles données •  Réessais •  Mises à jour Envoi de tâches dans Beanstalkd Problèmes •  Requêtes de planifications coûteuses •  Ce serait mieux avec de vrais observers Nouveau besoin : observers Pub/sub, faible criticité 15/11/13 SoCloz - Tous droits réservés 18
  19. 19. Solution #1: NSQ NSQ, Matt Reiferson @ bitly (2012) https://github.com/bitly/nsq https://github.com/davegardnerisme/nsqphp consommateur   producteur topic   channel consommateur   consommateur   15/11/13 SoCloz - Tous droits réservés 19
  20. 20. NSQ : architecture producteur Envoi de messages sur un/plusieurs nsqd nsqd nsqd nsq lookupd nsqd Connexion à tous les nsqd simultanément 15/11/13 nsqd Notification des nsqlookups de la présence du topic nsq lookupd consomma teur SoCloz - Tous droits réservés Quels nsqd produisent ce topic ? 20
  21. 21. NSQ : exemple de code nsqphp Producteur Consommateur // initialisation $nsq = new nsqphpnsqphp(); $nsq->publishTo('localhost'); // initialisation $nsq = new nsqphpnsqphp( new nsqphpLookupFixedHosts('localhost:4160') ); $nsq ->subscribe('test', 'channel1', function ($msg) { // traitement... echo $msg->getPayLoad(); }) ->subscribe('test', 'channel2', function ($msg) { // traitement... echo $msg->getPayLoad(); }); // envoi d'un message $nsq->publish( 'test', new nsqphpMessageMessage('hello world') ); // boucle de traitement $nsq->run(); 15/11/13 SoCloz - Tous droits réservés 21
  22. 22. NSQ : contraintes sur le client Problème écouter plusieurs connexions nsqd en parallèle Solution E/S asynchrones (React) http://reactphp.org/ •  •  •  écouteurs (callback) d’événements (écriture, lecture...) sur descripteur (fichier, connexion) timers (appel différé́) plusieurs backends disponibles : libev, libevent, select 15/11/13 SoCloz - Tous droits réservés 22
  23. 23. NSQ : conclusion Avantages facile à mettre en place •  pas de conf •  topic / channel créés à la volée Inconvénients contraintes sur le client idempotence haute disponibilité́ •  support simple et robuste admin web Conclusion •  Idéal pour pub/sub •  Peu adapté à notre besoin de job queue 15/11/13 SoCloz - Tous droits réservés 23
  24. 24. Solution #2 : RabbitMQ/AMQP AMQP (Advanced Message Queuing Protocol) •  architecture programmable : exchange / queue (point à point, fan-out, …) •  durabilité (réglable par message) •  authentification / contrôle d'accès RabbitMQ •  Ecrit en Erlang @ Rabbit Technologies (2008) •  Protocoles AMQP, HTTP(S), XMPP... •  Gestion de plugins (Erlang) •  Cluster / réplication Client PHP : php-amqplib, amqp (pecl) 15/11/13 SoCloz - Tous droits réservés 24
  25. 25. RabbitMQ : exemple de code (pub/sub) php-amqplib Producteur Consommateur // initialisation $connection = new AMQPConnection( 'localhost', 5672, 'guest', 'guest' ); $channel = $connection->channel(); $channel->exchange_declare( 'test', 'fanout' ); // initialisation $connection = new AMQPConnection( 'localhost', 5672, 'guest', 'guest' ); $channel = $connection->channel(); // envoi d'un message $channel->basic_publish( new AMQPMessage("hello world"), '', 'test' ); $channel->exchange_declare( 'test', // nom 'fanout' // type ); list($queue_name, ,) = $channel->queue_declare(); $channel->queue_bind($queue_name, 'test'); $channel->basic_consume( $queue_name, '', false, true, false, false, function ($msg) { // traitement echo $msg->body; } ); // boucle de traitement while(count($channel->callbacks)) { $channel->wait(); } 15/11/13 SoCloz - Tous droits réservés 25
  26. 26. RabbitMQ ou beanstalkd + NSQ ? Job queue : beanstalkd vs RabbitMQ 1.  Réponse au besoin fonctionnel : beanstalkd > RabbitMQ 2.  Simplicité : beanstalkd >> RabbitMQ 3.  Disponibilité : RabbitMQ >> beanstalkd Pub / sub : NSQ vs RabbitMQ 1.  Réponse au besoin fonctionnel : NSQ ≈ RabbitMQ 2.  Simplicité : NSQ >> RabbitMQ 3.  Délivrabilité/Durabilité : RabbitMQ > NSQ Simplicité totale : NSQ + beanstalkd > RabbitMQ 15/11/13 SoCloz - Tous droits réservés 26
  27. 27. AUTRES OUTILS Voire autres problématiques… 15/11/13 SoCloz - Tous droits réservés 27
  28. 28. Autres outils : les plus simples Redis (C) Pub/sub simple, job queues simples. En direct ou avec un surcouche (ex: resque – GitHub pour Ruby) Les - : fonctionnel limité (pas de rejeu, pas de différé) http://redis.io/ Gearman (C – LiveJournal, digg) RPC et job-queues Les - : pas optimal en job-queue, pas de clusterisation http://gearman.org/ http://pecl.php.net/package/gearman Kestrel (Scala - twitter, foursquare, tumblr) Job queue & pub/sub, protocole memcache Les - : assez lourd, nécessite un minimum de connaissance de Scala https://github.com/robey/kestrel http://blog.shupp.org/2011/05/07/getting-started-with-kestrel-from-a-php-application/ Darner (C++ - wavii) Dérivé de kestrel, plus simple, meilleurs performances Les - : wavii racheté par Google, pérennité ? https://github.com/wavii/darner IronMQ (SaaS) Fonctionnellement très complet et simple à mettre en place Les – : pas gratuit http://www.iron.io/mq 15/11/13 SoCloz - Tous droits réservés 28
  29. 29. Autres outils : les plus complexes Amazon SNS/SQS (SaaS) SNS (pub/sub) et SQS (job queue), à coupler éventuellement Les – : pas gratuit, latences http://aws.amazon.com/fr/sns/ et http://aws.amazon.com/fr/sqs/ Marconi (C – Openstack) Réponse d’OpenStack à SNS/SQS. Basé sur 0MQ, utilise MongoDB/QPID pour le stockage Les – : jeune (mais prometteur) https://wiki.openstack.org/wiki/Marconi Celery (Python – Instagram) Couche d’abstraction au dessus d’un broker (RabbitMQ, Redis, MongoDB, CouchDB, SQS, IronMQ, …) Les – : complexité (connaissance de Python recommandée) http://www.celeryproject.org/ 0MQ Librairie C, avec extension PHP PECL http://zeromq.org/ http://pecl.php.net/package/zmq AMQP QPID - http://qpid.apache.org/ ActiveMQ - http://activemq.apache.org/, Apollo - http://activemq.apache.org/apollo/ HornetQ - http://www.jboss.org/hornetq 15/11/13 SoCloz - Tous droits réservés 29
  30. 30. Autres problématiques : event/log processing Distribué, performant, fonctionnel limité Conçus souvent pour transporter des logs vers des systèmes de type Hadoop, mais utilisables pour faire des traitements Kafka (Java - LinkedIn, Tumblr, Twitter) http://kafka.apache.org/ Fluentd (C/Ruby – Line, SlideShare) http://fluentd.org/ Scribe (C++ - Facebook, Digg, Zynga) https://github.com/facebook/scribe Flume (Java - Cloudera) https://cwiki.apache.org/confluence/display/FLUME/Home 15/11/13 SoCloz - Tous droits réservés 30
  31. 31. Autres problématiques : Stream processing Storm - (Java/Clojure – Twitter, Groupon) Des spouts injectent des flux de données qui sont traités par un graphe de bolts, développés dans des langages variés (java, python, ruby, PHP, …) http://storm-project.net/ et https://github.com/Lazyshot/storm-php spout   spout   bolt   bolt   15/11/13 spout   bolt   bolt   SoCloz - Tous droits réservés bolt   31
  32. 32. Merci ! SoCloz recrute : -  Un dev frontend (HTML/CSS/PHP+Symfony2) -  Un dev backend (PHP+Symfony2/Go) -  Un devops (Linux/Go/PHP) techjobs@socloz.com http://www.socloz.fr @SoClozTech / @jfbus jf@socloz.com

×