Page tree

RabbitMQ ist ein sog. Message-Broker, der die Kommunikation zwischen cargo support Clients und AppServern optimiert. Er ermöglich z.B. dass die cargo support Clients den Appservern Befehle schicken können, die nach und nach im Hintergrund abgearbeitet werden.

Ab Programm-Version 9.27 ist die Installation des RabbitMQ-Servers obligatorisch!

Es empfiehlt sich, den RabbitMQ-Server auf demselben Rechner zu installieren, auf dem auch der MySQL-Server läuft, und dabei dieselben Zugangsdaten einzurichten wie für MySQL.

In diesem Fall kann cargo support die gleichen Zugangsdaten verwenden, und es ist keine eigene Konfiguration notwendig. Aber bei Bedarf kann der RabbitMQ-Server auch getrennt von MySQL konfiguriert werden.

Installation

Erlang/OTP

RabbitMQ basiert auf Erlang/OTP. Dies ist eine Plattform ähnlich wie .NET oder Java. Daher muss zuerst die Erlang Laufzeitumgebung heruntergeladen und installiert werden.

Erlang Download

Es gibt eine 32-bit und 64-bit Version. Die Version muss passend zum Betriebsystem ausgewählt werden, und man sollte immer die neuste Version herunterladen. Evtl. ist das Runterladen beim Kunden geblockt (weil exe-Dateien), dann lokal runterladen und zum Kunden übertragen. Dann die exe ausführen.

Es ist wichtig, den Installer mit Admin-Rechten auszuführen, da er nur so die notwendigen Änderungen an der Windows-Registry durchführen kann!


Die Optionen im Installer können einfach übernommen werden.

RabbitMQ

Danach kann direkt der RabbitMQ-Server installiert werden. Dazu muss der RabbitMQ-Server heruntergeladen und installiert werden. Evtl. ist das Runterladen beim Kunden geblockt (weil exe-Dateien), dann lokal runterladen und zum Kunden übertragen.

RabbitMQ Download

Dann die exe ausführen - auch am besten als Admin.

Auch hier kann man die Standard-Optionen verwenden:


Nach der Installation sollte nun RabbitMQ direkt als Dienst laufen.


Management-Plugin

Es empfiehlt sich das Management-Plugin zu installieren.

Dazu sucht man auf dem Gerät über Windows / Start nach dem Programm "RabbitMQ Command Prompt" und startet dies.


  


und gibt dort folgenden Befehl ein:  (kopieren und mit rechter Maustaste > Einfügen > Enter)

rabbitmq-plugins enable rabbitmq_management


Danach kann die Administrations-Oberfläche unter http://localhost:15672/ im Browser geöffnet werden.

ACHTUNG → Falls dieser Schritt nicht funktioniert RabbitMQ mit ausgeschaltetem Virenscanner deinstallieren und mit weiterhin ausgeschaltetem Virencsanner neu installieren.



Die Zugangsdaten direkt nach der Installation lauten guest / guest. Dieser Zugang funktioniert aber nur auf dem lokalen System.

Benutzer einrichten

Als erstes sollte man einen echten Benutzer mit Admin-Rechten anlegen:


Wenn man sich das Leben einfach machen möchte, sollte man dieselben Zugangsdaten wählen, wie für den MySQL-Zugang.

Beim neuen Benutzer sollte man "Admin" wählen (wenn er volle Admin-Rechte besitzen soll).

Wenn man hingegen einen getrennten Admin-Benutzer verwenden möchte, dann muss der Benutzer für cargo support mindestens "Policymaker" Rechte besitzen (diese Rechte werden von cargo support zwingend benötigt).

Der Benutzer wurde erfolgreich angelegt

>>angelegte Userdaten in den Kundeninfos ergänzen

Virtual Hosts

Die sog. "Virtuals Hosts" entsprechend grob den "Datenbanken" auf einem Mysql-Server. Der Einfachheit halber wählt man hier auch denselben Namen, wie die Mysql-Datenbank.



ACHTUNG: Der Virtual Host muss den Namen des Datenbank-Schemas UND - falls nicht der MySQL Port 3306 genutzt wird - den verwendeten Port mit einem Minus Zeichen davor haben.

z.B. csd2_maxflex_container auf Port 3307

müsste als Virtual Host haben:  csd2_maxflex_container-3307


Danach wählt man den neu angelegten Virtual Host aus, um ihn zu bearbeiten.

Das einzige, was man hier machen muss ist unter "Permissions" den neu angelegt RabbitMQ-Benutzer auszuwählen und auf "Set permission" zu drücken. Die anderen Felder dürfen nicht verändert werden.

So sollte das Ergebnis aussehen:

Abschluss

Damit ist die Installation und Einrichtung des RabbitMQ-Servers erfolgreich abgeschlossen. Alles weitere wird sich dann cargo support selbst beim ersten Programmstart einstellen.

Vorsichtige Admins werden evtl. noch den guest-Benutzer löschen oder zumindest mit einem anderen Passwort versehen.

Ports

Der RabbitMQ-Server muss im internen Netz unter folgenden Ports erreichbar sein. Daher ggf. die Firewall-Regeln anpassen. (ggfs. Info an die IT des Kunden)

PortFunktion
5672RabbitMQ-Clients (ohne TLS)
5671RabbitMQ-Clients (nur falls TLS verwendet wird)
15672Adminstrations-Oberfläche
25672Clusterin-Verwaltung (nur falls Clustering verwendet werden soll)

Datenablage

Das Standard-Verzeichnis, in dem RabbitMQ seine Daten ablegt, ist %APPDATA%\RabbitMQ.

In diesem Verzeichnis befindet sich die Konfiguration das RabbitMQ-Servers sowie alle Nachrichten, die noch nicht vom Empfänger abgeholt wurden. Daher empfiehlt es sich, das Verzeichnis in das (hoffentlich vorhandene) tägliche Backup einzubeziehen.

Die Datenmenge sollte sich in Grenzen halten, da dort nur Nachrichten zwischengespeichert werden, bis sie vom Empfänger abgeholt und verarbeitet wurden.

cargo support Konfiguration

In cargosupport kann der RabbitMQ-Server über die database.config.xml Datei konfiguriert werden. Dies ist in der Regel aber nur notwendig, wenn der RabbitMQ-Server sich nicht auf dem Datenbank-Server befindet oder andere Zugangsdaten hat.


Z.B. als Text

<rabbitServerConfig>
<host Value="192.168.0.252" />
<port Value="5672" />
<login Value="root" />
<password Value="qDv2WhZkOhc=" />
<virtualHost Value="csd2" />
</rabbitServerConfig>

Standard-Werte in cargosupport

Folgende Werte werden verwendet, falls der RabbitMQ-Server nicht extra konfiguriert wurde.

OptionStandard-Wert
host

Gleicher Wert, wie für den Mysl-Host (unter writeCargoConfig)

port5672
loginGleicher Wert, wie für das Mysl-Login (unter writeCargoConfig)
passwordGleicher Wert, wie für das Mysl-Passwort (unter writeCargoConfig)
virtualHostFalls Mysql den Standard-Port (3306) verwendet, dann ist dies der gleiche Wert, wie für den Mysql-Datenbanknamen.
Falls Mysql einen anderen Port verwendet, dann wird der Mysql-Datenbank-Name verwendet und "-Portnummer" angehängt, z.b. "csd2-3307"


Server Firewall

In der Windows Firewall des Servers müssen die Ports 5672 und 15672 für eingehende Verbindungen freigeschaltet sein.

Am besten in der Windows Firewall freigeben.