Apache ActiveMQ ist ein weit verbreiteter Messaging-Server, der in Java geschrieben ist. Wie Messaging-Dienste dies üblicherweise tun, schafft es eine Brücke zwischen heterogenen Systemen für einen zuverlässigen Datenaustausch in Form von Nachrichten, die von Producer-Clients in Warteschlangen geschoben werden, wo sie darauf warten, von Consumer-Clients „gelesen“ oder konsumiert zu werden.
Natürlich kann ein System, das Client von ActiveMQ ist, sowohl Producer als auch Consumer sein, und mehr als ein System kann eine Warteschlange oder ein Thema abonnieren, wodurch eine flexible Kommunikation zwischen diesen Client-Systemen ermöglicht wird. Viele verschiedene Plattformen und Protokolle können verwendet werden, um eine Verbindung zu ActiveMQ herzustellen, was seine Nützlichkeit noch weiter erhöht.
In diesem Tutorial installieren wir Apache ActiveMQ auf Red Hat Enterprise Linux 8 aus dem Tarball, fügen Sie den systemd
hinzu Unit-Dateien für eine einfache Verwendung und greifen Sie auf die Admin-Seite unseres neuen Dienstes zu, um eine Warteschlange zu erstellen.
In diesem Tutorial lernen Sie:
- Wie installiert man ActiveMQ vom Tarball
- So richten Sie die Umgebung über die Befehlszeile ein
- Wie man systemd Unit-Dateien für ActiveMQ hinzufügt
- Zugriff auf die Admin-Seite
Apache ActiveMQ-Willkommensseite auf RHEL 8
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Red Hat Enterprise Linux 8 |
Software | Apache ActiveMQ 5.15.8 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Schritt-für-Schritt-Anleitung zur Installation von activemq auf Redhat 8
Apache ActiveMQ erfordert eine funktionierende Java 8-Installation und nicht mehr. Wir sollten bedenken, dass Nachrichten auf der Festplatte gespeichert werden, daher wird entsprechender Speicherplatz benötigt. In diesem Tutorial werden wir den Server nicht wirklich belasten, die von uns erstellte Warteschlange wird keinen Speicherplatz verbrauchen, da sie leer sein wird.
- Um das benötigte Paket zu finden, können wir uns die Homepage der Veröffentlichung ansehen. Dort finden wir die URL, die an
wget
übergeben werden kann . Wir installieren die Anwendung unter/opt
Verzeichnis, also geben wir es ein:# cd /opt
Und laden Sie das Paket mit der URL herunter, die wir von der Website erhalten haben:
# wget "http://www.apache.org/dyn/closer.cgi&filename=/activemq/5.15.8/apache-activemq-5.15.8-bin.tar.gz&action=download" -O apache-activemq-5.15.8-bin.tar.gz
Die Seite ist schlau genug, uns zu dem Paket auf dem nächstgelegenen Spiegel umzuleiten, aber
wget
benötigt doppelte Anführungszeichen, um die URL zu verarbeiten, und wir können den Namen der Ausgabedatei mit-O
angeben , wobei eine URL als Dateiname vermieden wird. - Wir extrahieren das Archiv an Ort und Stelle:
# tar -xvf apache-activemq-5.15.8-bin.tar.gz
- Wir fügen einen darauf verweisenden Symlink mit einem benutzerfreundlicheren Namen hinzu:
# ln -s /opt/apache-activemq-5.15.8 /opt/activemq
- Aus Sicherheitsgründen führen wir den Dienst nicht als
root
aus (Nichts sollte als root laufen, wenn es nicht nötig ist). Wir erstellen einen Benutzeractivemq
, und der Dienst wird unter seinem Namen ausgeführt:# useradd activemq
- Wir setzen diesen neuen Benutzer rekursiv als Besitzer des Inhalts des extrahierten Pakets:
# chown -R activemq:activemq apache-activemq-5.15.8*
- Wir erstellen eine Unit-Datei,
/etc/systemd/system/activemq.service
, das die Definition des Dienstes enthält:[Unit] Description=Apache ActiveMQ After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/activemq/bin/activemq start ExecStop=/opt/activemq/bin/activemq stop [Install] WantedBy=multi-user.target
- Wir müssen
systemd
neu laden um den neuen Dienst zu bemerken:# systemctl daemon-reload
- Und von nun an können wir Folgendes verwalten:starten, stoppen und seinen Status abrufen:
# systemctl start|stop|status activemq
- Wenn wir diesen Dienst regelmäßig nutzen möchten, können wir
systemd
bestellen um den Dienst bei jedem Booten zu starten:# systemctl enable activemq
- Um sicherzustellen, dass alles einwandfrei funktioniert, können wir nach dem Start des Dienstes seine Protokolldatei überprüfen, die
/opt/activemq/data/activemq.log
ist in unserem Fall. In dieser Datei finden wir einen Eintrag, der angibt, dass sie mit einem Browser erreichbar ist:2019-01-15 15:59:14,359 | INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/ | org.apache.activemq.web.WebConsoleStarter | main
- Port
8161
ist der Standardport für ActiveMQ. Wenn auf unserem Computer eine Firewall ausgeführt wird, müssen wir diesen Port öffnen, um auf die WebConsole zuzugreifen:# firewall-cmd --zone=public --add-port=8161/tcp --permanent success # firewall-cmd --reload success
- Jetzt können wir auf unsere ActiveMQ-Webkonsole zugreifen, indem wir einen Browser auf den Hostnamen oder die IP-Adresse der Maschine, Port 8161, richten und die URL mit
/admin
anhängen , um mehr als eine Willkommensseite und einige Links zu sehen. Apache ActiveMQ-Konsolenseite.Diese Seite erfordert eine Authentifizierung. Da wir die Standardkonfiguration nicht geändert haben, können wir erraten, wie der Standardbenutzername und das Standardpasswort lauten könnten. Tipp:Versuchen wir es mit admin/admin.
- Unser ActiveMQ-Server läuft und wir können ihn über die WebConsole verwalten. Wenn wir zum Beispiel auf den Link „Warteschlangen“ klicken, können wir eine Warteschlange erstellen (leer auf dem folgenden Bild): ActiveMQ-Warteschlangenliste mit Beispielwarteschlange.
Wir können damit beginnen, Clients an unseren ActiveMQ-Server anzuschließen und ihn mit Nachrichten zu versorgen, die er bei Bedarf in die Warteschlange stellen und an Verbraucher weiterleiten kann.