Magento 2.4+ i Elasticsearch

Magento 2.4+ i Elasticsearch

Magento 2.4 całkowicie przestawiło się z używania MySQL jako głównej wyszukiwarki na Elasticsearch.

Elasticsearch służy do wyszukiwania, a także wyświetlania dowolnego produktu lub produktów w sklepie. Kiedy klient otwiera stronę kategorii, otrzymuje wyniki przefiltrowane i posortowane przez Elasticsearch, dzięki czemu Elasticsearch jest niezbędną usługą w prowadzeniu najnowszego sklepu Magento. Bez tej usługi Magento nie będzie w stanie wyświetlać produktów na stronie kategorii.

Zalety Elasticsearch

Dlaczego Magento dokonało tak dużej zmiany? Zobacz dokumentację Magento związaną z tym tematem.

Uważamy, że głównym punktem tutaj jest to, czy Elasticsearch zapewnia lepszą wydajność niż MySQL, jeśli chcemy uruchomić zapytanie filtrujące nawigację warstwową. Elasticsearch może filtrować produkty z atrybutami produktów i zwracać zagregowaną liczbę dostępnych produktów szybciej i przy mniejszym zużyciu zasobów serwera.

Z naszego doświadczenia wynika, że ​​Elasticsearch to solidne rozwiązanie. Można go łatwo zainstalować i skonfigurować. Jest stabilny i nie wymaga wiele uwagi ze strony administratora serwera. W razie potrzeby łatwiej jest zwiększyć liczbę serwerów Elasticsearch i utworzyć klaster.

Wady z zastosowania Elasticsearch

Wadą Magento 2.4 może być całkowite porzucenie obsługi wyszukiwania MySQL. Elasticsearch jest teraz obowiązkowym elementem. Nie możesz bez niego prowadzić sklepu.

W efekcie firmy wdrażające Magento mogą mieć spore problemy z aktualizacją sklepów do wersji Magento 2.4+, głównie z powodu usług hostingowych, które nie oferują Elasticsearch.

Istnieją trzy możliwe rozwiązania tego problemu:

  1. Sprzedawca może przenieść sklep na innego dostawcę usług hostingowych. Tutaj polecamy naszą ofertę hostingu Magento w ramach której zapewniamy Elasticserach.
  2. Sprzedawca może korzystać ze zdalnego serwera Elasticsearch. Na przykład usługi w chmurze Elasticsearch lub usługa Amazon Elasticsearch . Zresztą ta opcja nie jest tania.
  3. Sprzedawca może zainstalować rozszerzenie, które ma tryb wyszukiwania MySQL. Przypisuje wszystkie żądania Magento do MySQL zamiast Elasticsearch. W tym przypadku Magento 2.4 może działać bez Elasticsearch, używając tylko MySQL choć nie jest to rozwiązanie zbyt wydajne.

Obsługiwane wersje Elasticsearch

Magento 2.4 zrezygnowało z obsługi Elasticsearch w wersjach 2.x, 5.x i 6.x.

Jeśli masz tę wersję, zdecydowanie powinieneś zaktualizować Elasticsearch przed aktualizacją Magento. Nie aktualizuj także Elasticsearch do najnowszej wersji, ponieważ Magento 2.4 oficjalnie obsługuje tylko 7.6.x i może na przykład nie działać poprawnie z 7.8.x.

Tutaj opisano proces aktualizacji silnika Elasticsearch . Aktualizacja z 2.x, 5.x, 6.x wymaga ponownego uruchomienia usługi Elasticsearch. Więc prawdopodobnie będziesz mieć trochę przestoju podczas tego procesu.

Typowe błędy i rozwiązania Elasticsearch

Podczas korzystania z Magento 2.4 mogą pojawić się błędy związane z Elasticsearch. Zebraliśmy te typowe błędy i zapewniliśmy niezbędne rozwiązania.

Nie można zweryfikować połączenia z Elasticsearch. W klastrze nie znaleziono żadnych aktywnych węzłów

Ten błąd oznacza, że ​​Magento nie może połączyć się z Elasticsearch. Możliwe, że Twoja Elasticsearch nie działa. Aby sprawdzić stan usługi Elasticsearch:

curl -X GET "localhost:9200/_cluster/health?pretty"

Powinieneś otrzymać wyjście takie jak:

{
  "cluster_name" : "elasticsearch_brew",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
   ...
  "active_shards_percent_as_number" : 50.0
}

Sprawdź pole stanu pod kątem następujących kolorów; Jeśli stan jest „zielony” lub „żółty”, oznacza to, że Elasticsearch jest gotowy do spełnienia Twoich żądań. Jeśli stan jest „czerwony”, oznacza to, że z jakiegoś powodu Elasticsearch nie działa w pełni. Aby uzyskać więcej informacji, sprawdź dzienniki Elasticsearch.

Jeśli otrzymasz taki komunikat curl: (7) Failed to connect to localhost port 9200: Connection refused, oznacza to, że usługa Elasticsearch nie działa. Spróbuj go ponownie uruchomić. Jeśli ponowne uruchomienie nie pomoże, sprawdź dzienniki Elasticsearch lub skontaktuj się z dostawcą hosta.

cluster_block_exception [FORBIDDEN / 12 / indeks tylko do odczytu / zezwalaj na usuwanie (api)]

Ten błąd oznacza, że ​​kończy się miejsce na dysku. Nawet jeśli masz 10% wolnego miejsca na dysku, Elasticsearch może wywołać ten błąd. Spróbuj zwolnić trochę miejsca na dysku dla indeksów Elasticsearch.

Jako rozwiązanie tymczasowe powinieneś uruchomić następujące polecenie:

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

Końcowe przemyślenia

Elasticsearch to solidne rozwiązanie, ponieważ jego użycie znacznie poprawi szybkość i stabilność sklepów Magento. Przed aktualizacją do Magento 2.4 musisz upewnić się, że zainstalowałeś Elasticsearch i że ma tę samą wersję, której potrzebuje Magento.

Elasticsearch ma swoje niuanse i rozbudowane ustawienia konfiguracyjne. Jeśli nie masz dużego doświadczenia z tym rozwiązaniem, dobrze jest dokładnie sprawdzić wszystko w środowisku testowym przed wprowadzeniem aktualizacji na produkcję.

Pytania? Zapraszamy do kontaktu



Powiązana oferta

Copyright © 2019 kowal sp. z o.o.