Elasticsearch - realtime UI rubrika: Databáze: NoSQL
Jak řešíte problém nerealtimovosti Elasticsearch?
Příklad: Měl bych třeba e-shop, kde bude jako primární úložiště Elastic. Admin si otevře administraci, přidá zboží, dá uložit a po uložení ho to hodí na výpis produktů. Protože to ale není realtime, tak se mu tam ten poslední produkt nezobrazí. Toho se pochopitelně lekne a začne ho vytvářet nejspíš znova. Pak volá na support až zjistí, že to tam má 2x.
Jak řešíte tyto situace?
Co mě napadlo za řešení:
- použít nějakou proxy mezi aplikaci a Elastic co si bude cachovat třeba na 10s přidané/updatnuté dokumenty - to je ale nesmysl, protože to nevyřeší problém výše, ale maximálně tak GETování konkrétního dokumentu
- po uložení zobrazit spinner a nechat admina čekat než se dokument zaindexuje
- prostě adminům říct, že se to zobrazí až za pár sekund - všichni víme, že to nebude fungovat :)
- ukládat primárně do jiné databáze - do toho bych se nerad pouštěl - rád bych měl jen jednu databázi a tou by měl být právě Elastic
Skus pouzit refres pri ukladani dokumentu.
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#index-refresh
Daj si ale pozor na performace, lebo sa vzdy spusta indexovanie dat. Ak sa to pouziva malo, v administracii shopu tak predpokladam zeby ti to mohlo v pohode stihat.
Mozes mat este iny pristup k nacitaniu po update dokumentu. Pravdepodobne ho vyhladavas pomocou nejakej query. Ak ho nacitas pomocou _id, tak dostanes vzdy najcerstvejsi dokument.
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře