Successfully reported this slideshow.
Your SlideShare is downloading. ×

RabbitMQ a ElasticSearch v Previu

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 10 Ad

More Related Content

Similar to RabbitMQ a ElasticSearch v Previu (20)

More from Péhápkaři (20)

Advertisement

RabbitMQ a ElasticSearch v Previu

  1. 1. RabbitMQ a ElasticSearch v Previu
  2. 2. Příklad - uložení rezervace ● uložení do DB ● záznam uživatelských změn (log) ○ stav objektu před uložením a po uložení ● distribuce dat (channel manager) ○ API
  3. 3. Problémy Celý proces v jednom běhu skriptu - dlouhá transakce, timeouty - rozsáhlá DB - komplikované rozšíření funkčnosti
  4. 4. Řešení ● oddělení běhu a logiky pomocí RabbitMQ ○ nástroj pro práci s frontami zpráv ○ zpráva, fronta, producer, consumer ● změna úložiště dat na ElasticSearch (ES) ○ JSON dokumentová DB ○ index, dokument - opensource - stabilní a podporované
  5. 5. Výhody a nevýhody RabbitMQ + zrychlení základního procesu ukládání rezervace + jedno místo pro odeslání, více míst pro příjem + možnost rozdělení procesu na více serverů + snadné rozšíření funkcionality - složitá kontrola zpracování v původním skriptu - potřeba nástroje na spouštění a kontrolu běhu consumerů - MySQL transakce vs. zpracování v RabbitMQ - zpracování v RabbitMQ může předběhnout velkou SQL transakci
  6. 6. Nasazení RabbitMQ v Previu ● Zpráva obsahuje obraz modelu ○ před uložením a po uložení ● Zpožděné doručování v případě chyby ○ fronty s rostoucím TTL až do max. počtu pokusů ● Rozšíření ○ přidání consumer skriptu ● Supervisord ○ nekonečně bežící php skripty
  7. 7. Výhody a nevýhody ElasticSearch + zmenšení velikosti DB při zvýšení výkonu + rozšíření možností vyhledávání + vhodnější struktura dat (tabulky vs indexy) - více plánování (nasazení změn struktury 31.12. v 23:59) - konflikt verzí dokumentu při rychlých operacích
  8. 8. Nasazení ElasticSearch v Previu ● Migrace 270GB v MySQL do ES ○ skript na 16 dní ● Time-based indexy ○ indexy s příponou časového období ○ snadné mazání starých dat ● Striktní mapování ○ potřeba hlídat přidání nového pole v kódu
  9. 9. ✓ splněná očekávání ✓ zajímavé technologie ✓ další možnosti využití

×