Solr

Jak nainstalovat Solr jako Windows Službu

S vydáním nejnovějšího releasu Sitecore 9, přišla také potřeba provozovat Solr i pro jednoserverové instalace. To je ve velké míře dáno novou xConnect vrstvou, která využívá buď Solr nebo Azure Search. Pokud tedy potřebujete nainstalovat Solr na Windows a spustit jej jako službu, dovolte, abych s vámi sdílel některá moje ponaučení, která jsem na této cestě nabyl.

Apache Solr je open-source search engine postavený ja Javě je zejména určen pro provoz jako Linux daemon – což je mimo jiné velice dobře popsáno v dokumentaci, na kterou se odkazují prakticky všechny Sitecore instalační manuály. Tím, že se jedná o  Java aplikaci, je možné Solr provozovat i na Windows, ale neexistuje žádná “out of the box” možnost, jak nainstalovat Solr jako Windows službu (vzpomínajíc na jednoduchou instalaci MongoDB jako Windows služby…).

Připravte nástroje

Jakkoli můžete celý proces zcela automatizovat – např. za použití PowerShell script Jeremyho DaviseLow-Effort Solr Installs , mým cíle je popsat každý krok manuální instalace a místa, na která si dát pozor.

Abychom rozjeli Solr jako Windows službu, budeme potřebovat trochu pomoci. I když jméno nevyvolává velkou dávku důvěry, je NSSM (Non Sucking Service Manager) nástrojem, který umoýní registraci Solru jako Windows služby.

Mým cílem bylo nainstalovat Solr službu na Windows Server 2016 64 bit. Sáhl jsem tedy po nejčerstvějším pre-releasu NSSM 2.24-101-g897c7ad a rozbalil jej na můj lokální disk. Není potřeba žádná instalace.

Rozběhněte to

Ve složce NSSM můžete nalézt 32 and 64 bit aplikace. Já použil 64 bitovou. Moje NSSM složka byla umístěna v C:\NSSM a můj Solr server byl nainstalovaný v C:\Solr.

K instalaci Solru jako Windows služby, otevřete příkazovou řádku ve složce s NSSM aplikací dle vašeho výběru a spusťte příkaz:

Objeví se konfigurační okno, kam uveďte cestu k souboru Solr.cmd. V mém případě se jednalo o C:\Solr\bin\solr.cmd . Pole Startup directory se naplní samo a tuto hodnotu můžete zanechat.  V poli s argumenty uveďte parametry ke potřebné ke startu aplikace. V mém případě to je start -f . Solr automaticky vybere port 8983, takže pokud to je to, co očekáváte, není potřeba jej specifikovat. Pokud chcete specifikovat i port, stačí přidat parametr -p s číslem portu: start -f -p 8983 .

Okno NSSM pak vypadá takto:

NSSM Solr Service Install

Spusťte “Install service” a služba je nyní připravena ke spuštění (ať ze správce úloh, správce služeb nebo příkazové řádky).

Parametr -f

Těžce jsem se poučil, že parametr Naučil -f je kritický k úspěchu operace. Zatímco vše se nainstaluje korektně a poběží i bez parametru, trochu neintuitivně musíte vždy spouštět službu v popředí (foreground). To proto, že bez -f parametru se Solr spustí v pozadí. A zatímco se úspěšně přihlásíte na Solr admin stránku, kdykoli potřebujete službu restartovat, (např. když Sitecore install script běží a pokouší se restartovat Solr), služba v pozadí bude stále běžet a skript se bude tedy pokoušet nahodit nový Solr. Ten bude nakonec v konfliktu na stejném čísle portu, který je stále využíván a vy dostanete chybovou hlášku. Také jsem se setkal s podivným chováním, kdy jsem zastavil a zcela odstranil Solr službu, ale stále jsem mohl se Solrem pracovat, jakoby byl stále někde v provozu.

Parametr -f umožnuje službu vždy restartovat a s ní i právě běžící Solr proces, bez pokusů o spuštění nového. To je nakonec očekávané chování.

Leave a Reply

Your email address will not be published. Required fields are marked *