Przygotowanie infrastruktury Solr HA

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.3.x autor: Wojciech Mleczko

 

W domyślnej instalacji WEBCON BPS instalowany jest komponent WEBCON BPS Search Server, który jest odpowiedzialny za obsługę pełnotekstowego wyszukiwania.

Komponent ten składa się z kilku elementów:

  • Apache Solr (oraz uruchamiany wraz z nim Apache ZooKeeper)
  • Java
  • Webcon BPS Search Service

Usługa Webcon BPS Search Service jest odpowiedzialna za uruchamianie, zatrzymywanie procesów Solr i Zookeeper, uruchamianych w ramach wirtualnej maszyny Javy.

Środowisko przygotowane przez instalator składa się z jednego node’a. W przypadku konieczności utworzenia środowiska wysokiej dostępności należy przygotować środowisko składające się z kilku node’ów Solr i ZooKeeper, oraz loadbalancera zarządzającego ruchem.

 

 

Liczba node’ów ZooKeeper koniecznych do utworzenia, zależy od tolerancji na awarię N maszyn, zgodnie z 2xN+1 . Minimalna ilość node’ów, odporna na awarię jednego node’a ZooKeepera to 3.

W przypadku Solr, wymagane jest działanie przynajmniej jednego node’a. Ilość node’ów = N+1.

Loadbalancer odpowiedzialny jest za kierowanie ruchu zapytań z WEBCON BPS, do node’ów Solr.

W kwestii instalacji Solr i ZooKeeper, z punktu widzenia WEBCON BPS, nie ma znaczenia środowisko, w którym są zainstalowane. Komponenty te, mogą być instalowane zarówno bezpośrednio na maszynach Windows, Linux, czy też w środowisku kontenerowym. WEBCON BPS odwołuje się do loadbalancera, który odpowiada za kierowanie ruchu do poszczególnych node’ów Solr.

Istotna jest konfiguracja ZooKeeper Ensemble, zgodnie z dokumentacją Solr https://lucene.apache.org/solr/guide/8_5/setting-up-an-external-zookeeper-ensemble.html#ensemble-configuration

Konfiguracja Solr w kwestii połączenia z ZooKeeper Ensemble, sprowadza się do przekazania odpowiednich wartości połączenia do ZooKeeper zgodnie z dokumentacją Solr https://lucene.apache.org/solr/guide/8_5/setting-up-an-external-zookeeper-ensemble.html#using-the-z-parameter-with-binsolr

Po uruchomieniu Solr, należy zmienić ustawienia zabezpieczeń, zgodnie z https://lucene.apache.org/solr/guide/8_5/basic-authentication-plugin.html#enable-basic-authentication, oraz zmienić hasło użytkownika administracyjnego solr na podstawie https://lucene.apache.org/solr/guide/8_5/basic-authentication-plugin.html#add-a-user-or-edit-a-password

WEBCON BPS odwołuje się do czterech kolekcji Solr:

  • BPS_AI
  • BPS_Activities
  • BPS_Elements
  • BPS_Navigations

Kolekcje te, możemy utworzyć od podstaw, lub przenieść z istniejącej instalacji Solr.

W przypadku nowej instalacji, aby móc utworzyć niezbędne kolekcje, konieczne jest załadowanie konfiguracji do ZooKeepera. Konfiguracje dla poszczególnych kolekcji, można znaleźć w folderze instalatora BPS w .\SearchServer\Solr\SolrTemplates\configsets

Należy załadować te confgiset’y do ZooKeepera zgodnie z dokumentacją https://lucene.apache.org/solr/guide/8_5/command-line-utilities.html#upload-a-configuration-directory

Kolejnym etapem jest utworzenie kolekcji. Można to zrobić wywołując poszczególne adresy (w przykładzie adresem loadbalancera na potrzeby Solr jest solr:8983):

http://solr:8983/solr/admin/collections?action=CREATE&name=BPS_Elements&numShards=1&replicationFactor=4&collection.configName=BPS_Elements

http://solr:8983/solr/admin/collections?action=CREATE&name=BPS_Navigations&numShards=1&replicationFactor=4&collection.configName=BPS_Navigations

http://solr:8983/solr/admin/collections?action=CREATE&name=BPS_Activities&numShards=1&replicationFactor=4&collection.configName=BPS_Activities

http://solr:8983/solr/admin/collections?action=CREATE&name=BPS_AI&numShards=1&replicationFactor=4&collection.configName=BPS_AI

Należy pamiętać o ustawieniu parametru replicationFactor zgodnie z ilością node’ów Solr.

W przypadku przeniesienia danych z dotychczasowej instalacji Solr należy wykonać backup/restore wykorzystywanych przez BPS kolekcji zgodnie z https://lucene.apache.org/solr/guide/8_5/collection-management.html#backup oraz https://lucene.apache.org/solr/guide/8_5/collection-management.html#restore. Nie ma potrzeby wgrywania configsetów w tym przypadku.

Po utworzeniu lub przywróceniu kolekcji, należy stworzyć, i nadać uprawnienia użytkownikowi, który będzie wykorzystywany do połączenia WEBCONBPS z Solr. Można w tym celu wykorzystać skrypt PowerShell, do tworzenia kolekcji, wykorzystujemy konto solr, wraz z ustawionym wcześniej hasłem:

W skrypcie należy zmienić adres Solr, oraz hasło dla użytkownika WEBCON_BPS.

Ostatnim etapem jest ustawienie połączenia Solr w WEBCON BPS z poziomu instalatora. W tym celu, po uruchomieniu instalatora, przechodzimy do narzędzi do zarządzania systemem, a następnie wybieramy opcję konfiguracji Search server:

 

 

Po zapisaniu ustawień należy wykonać restart usługi WebCon BPS WorkFlow Service, oraz recycle puli aplikacji WEBCON BPS Portal.