SCALABLE DATA PROCESSING MET RABBITMQ

Slides:



Advertisements
Verwante presentaties
HET DIGITALE ARBEIDSPLEIN Het Digitale Arbeidsplein is een website ontwikkeld in het kader van het project “Zelfmanagement van de eigen loopbaan” van MeijerConsult.
Advertisements

Customer Essentials Portfolio en Benefits Management 30 oktober 2013.
Bepaalt je inbox je dag? Hoe beslis je snel? Hoe krijg je snel antwoord? Meer tips & tricks.
Samenwerking met MOSS 2007! Chris Hoppenbrouwers.
Databases via internet
Software Architectuur Over de samenhang der dingen = Over de connecties tussen componenten Over de afhankelijkheden tussen modules Over de belangen van.
Server Management Framework
Easy Bis Bestuursdienst Informatie Systeem Van agendapunt tot besluit Met automatische internet publicatie.
Ik wil zien verzuimmeldingdossierprocessturingpoortwachtercorrespondentierapportagematching © InfoRhei Disclaimer -Sitemap Klik op een tabje voor.
17 april 2008 WAB*info De digitale bron van de Nederlandse waterbodems Gaston Lamaitre Data-ICT-Dienst, Delft Uitvoerders: Atlis (hoofdaannemer), CSO (functioneel.
Verlof autoriseren als leidinggevende met TSS
Woensdag 24 juni 2009 Web 2.0 en Technologie Bram de Kruijff.
iCafe Erasmushogeschool Brussel
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004.
The vision at work Batteries included Ervaringen van een ISV op hosting avontuur Sven Middelkoop Corporate ICT Manager Exact Holding N.V.
Agentenplatformen en programmeeromgevingen 1.Java 2 Micro Edition (J2ME) 2.Personal Java 3.JADE en LEAP 4.LEAP op verschillende toestellen 5.Onze voorkeuren.
Remote lab netwerkbeveiliging Onderliggende toepassingen en technieken.
Netwerken / Internet ICT Infrastructuren David N. Jansen.
Operating Systems Informatica.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Verzuimmeldingcorrespondentiepoortwachter Ik wil zien processturingdossiermatchingrapportage.
Het KB e-Depot Waarom, wat en voor wie
Uw netwerk beheren met Nagios.
Technische Architectuur
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Exposantentool Handleiding. Stap 1: Start ! Ga naar de link die u via ontving van Sylvie Buydaert. Login met uw: Gebruikersnaam Wachtwoord.
Farmaceut domein (Client) Innospense domein (Server) Browser Webserver
Erasmushogeschool Brussel Naim Ben Tanfous Stef De Spiegeleer Joeri Verdeyen iCafe Een digitaal bestelsysteem voor de horeca. 2de zittijd.
Starten met PHP Dynamischer bouwen.
DigiDoc Een digitaal kantoor voor iedereen !. Ceci n’est pas du software?! 2.
SharePoint 2010: een praktijkcase Robert Jan van Holland.
Basisfuncties Operating System.
Business Intelligence
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Scripting 4 designers aftrap theo arthur bennis
Kennisnet – Copacabana Van Dienst naar Service.
Premium Cloud Backup Makkelijk.Veilig.Betrouwbaar.
123 Belangrijke voordelenWat is het? End-to-end mogelijkheden Creëer en versterk autonome flexibele teams Plaats kwaliteit centraal in alles wat u doet.
FLOWer is… Case Handling Proces management zonodig tot op het bot
Het HiSPARC project Het HiSPARC project meet kosmische straling en is een samenwerkingsproject van een groot aantal scholen en diverse Universiteiten.
ENF collector Mustafa Karci Kilian Siem Sander van Schie Olivier Bootsma Feroz Rameswar.
Node.js en NPM. Node.js Open source, crossplatform runtime omgeving voor server-side javascript applicaties, primair bedoel snelle, schaalbare netwerk.
©2016 Avanade Inc. All Rights Reserved. RAI Community Technische Implementatie Rob Bakkers
wordPress  Het meest flexibele CMS CMS= Content Management System.
GBIF NODES Committee Meeting Copenhagen, Denmark 4 th October 2009 GBIF IPT Vereisten Kyle Braak Developer GBIF Secretariaat.
COINS 2.0 API als onderdeel van de SDK 7 april 2016 Bastiaan Bijl.
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
Gids door Doccle Doccle. De Cloud 2 1.Wat is de Cloud? 2.Voordelen van de Cloud 3.Nadelen van de Cloud 4.Doccle is geen cloudapplicatie.
Operating Systems Informatica.
KNVI Congres Introductie BI.
RadQuest 2.0 In samenwerking met ASolutions presenteert de
PI-HOLE: NETWORK-WIDE, HARDWARE AD BLOCKING
Hoe kan ik het beste in Nederland een eigen Game bedrijf opzetten?
SURFnet – Automation & Orchestration
Praktijkbeproeving ODS (Open Data Standaarden)
Praegus B.V.. .
Besturingssystemen Ga verder met een muisklik..
Team 5 Jeffrey.
SQL Les February 2019.
Technisch Ontwerp inhoud
– Software development fundamentals
Leren programmeren met Scratch
Transcript van de presentatie:

SCALABLE DATA PROCESSING MET RABBITMQ

HET PROJECT www.dekrachtvanmarktplaats.nl Voor autodealers die adverteren op marktplaats Inzichten in het aantal leads en views op geplaatste advertenties Historische informatie terug zien

DE OPDRACHT Opschalen van 2.000 dealers naar 10.000 dealers Verwerken van alle automotive leads van Marktplaats Hudige platform is end of life Focus op schaalbaarheid Applicatie opdelen in 2 componenten

WEB APPLICATIE Advertentie overzicht Actuele en historische statistieken inzien Performance van advertenties vergelijken tegen een benchmark Techniek UI (Angular) API (Zend expressive) Om de frontend zo licht mogeljik te maken en het dataverkeer naar de server te beperken hebben we gekozen om de frontend op te bouwen in AngularJS. API en UI losgekoppeld om ze individueel te kunnen schalen. UI load is nagenoeg niets (alleen 1x laden) API draait nu op 3 servers, maar er kan eenvoudig een server bijgezet worden.

CONSOLE APPLICATIE Afhandelen van alle leads Verwerken van statistieken voor alle dealers Veel data verwerken in korte tijd (data spikes) Er mogen geen leads verloren gaan door timeouts oid

DATA SPIKES Asynchroon Meerdere processen die parallel data verwerken Alleen 1 probleem … Asynchroon Meerdere processen die parallel data verwerken Asynchroon: bericht aannemen, opslaan zodat deze later verwerkt kan worden Parallel data verwerken (mutli threaded)

Randvoorwaarde voor het project Multi threading en async in PHP… yeah…

SUPERVISOR Process manager Kan meerdere instanties van een process starten Herstart scripts automatisch in geval van errors

LEAD VERWERKING Valideren van de lead signature Verrijken van de lead met gegevens uit de Marktplaats API Opslaan van de lead in de database Doorsturen van de lead naar API Partners Leads hebben een hash die berekent wodt aan de hand van de lead body en een secret Valideren van signature is een simpele operatie Communicatie van externe services kan langer duren Opsplitsen in losse processes die ieder een actie op zich nemen.

LEAD VERWERKING Valideren van de lead signature Verrijken van de lead met gegevens uit de Marktplaats API Opslaan van de lead in de database Doorsturen van de lead naar API Partners Kunnen echter nog niet individueel schalen…

MESSAGE BROKER Twee taken Berichten aannemen en in een queue zetten Het eerste bericht uit de queue terug geven als daarom gevraagd wordt. (FIFO) Door de message broker te gebruiken krijgen kunnen we de workers nu loskoppelen van elkaar en kunnen we voor acties die langer duren makkelijk meerdere workers gebruiken.

MESSAGE BROKER SELECTIE Criteria Moet kunnen draaien in een cluster Bestand zijn tegen grote hoeveelheden berichten Er mag geen data verloren gaan (persistent messages)

RABBITMQ VS KAFKA RABBITMQ Goede documentatie Ondersteund verschillende clients en protocollen Makkelijk te installeren en te configureren KAFKA Enterprise level Geschikt voor extreem veel berichten Focus op JAVA Kafka en RabbitMQ waren toentertijd de populairste brokers Gekozen voor RabbtMQ Verwerkingssnelheid was ruim voldoende Ondersteuning voor PHP Makkelijk op te zetten

RabbitMQ komt ook nog met een slicke interface…

Pas als de worker het ACK signaal stuurt beschouw Rabbit het bericht als verwerkt en wordt het verwijderd van de queue. Maar wat als er wat misgaat? De API van een externe partij is down (hopelijk tijdelijk), er zit een bug in de code of de database server geeft geen response?

ERROR HANDLING Het probleem is permanent (inconsistente data aanlevering, bug in de code) Het probleem is tijdelijk en gaat “vanzelf” over (externe API is overbelast) Permanente problemen worden weggeschreven naar een aparte queue zonder listener -> Failed queue Voor tijdelijke problemen gebruiken we een RabbitMQ plugin: “delayed message plugin”

Vertraging volgens Fibonacci

PUNT. 088 648 04 01