RocketMQ_Einführung und grundlegende Erste Schritte

Inhaltsverzeichnis

1. Was ist MQ?

1. Anwendungsentkopplung

2. Spitzenbeschneidung des Durchflusses

3. Datenverteilung

Zweitens die Vor- und Nachteile von MQ

3. Vergleich verschiedener MQ-Produkte

Viertens: RocketMQ-Schnellstart (eigenständige Version)


1. Was ist MQ?

Bevor wir RocketMQ lernen, wollen wir zunächst verstehen, was MQ ist und warum wir MQ verwenden. Der vollständige englische Name von MQ lautet (Massage Queue) und ist eine „First In, First Out“-Datenstruktur.

Seine Hauptanwendungsszenarien sind:

1. Anwendungsentkopplung

Je stärker ein System gekoppelt ist, desto weniger fehlertolerant ist es. Nehmen wir als Beispiel eine E-Commerce-Anwendung: Nachdem ein Benutzer eine Bestellung erstellt hat, wird das Inventarsystem, das Logistiksystem und das Zahlungssystem gekoppelt und aufgerufen, wenn ein Subsystem ausfällt oder aufgrund von Upgrades usw. vorübergehend nicht verfügbar ist Dies kann zu einem abnormalen Bestellvorgang führen und die Benutzererfahrung beeinträchtigen.

Durch die Entkopplung der Nachrichtenwarteschlange wird die Kopplung des Systems verbessert. Wenn beispielsweise das Logistiksystem ausfällt, dauert die Reparatur einige Minuten. Während dieser Zeit werden die vom Logistiksystem zu verarbeitenden Daten in der Nachrichtenwarteschlange zwischengespeichert und der Bestellvorgang des Benutzers wird normal abgeschlossen. Nachdem das Logistiksystem geantwortet hat, muss es nur noch die in der Nachrichtenwarteschlange gespeicherten Bestellnachrichten ergänzen und verarbeiten, und das Terminalsystem wird den Ausfall des Logistiksystems erst nach einigen Minuten bemerken.

2. Spitzenbeschneidung des Durchflusses

Wenn das Anwendungssystem einen plötzlichen Anstieg des Systemanforderungsdatenverkehrs feststellt, kann dies zu einer Überlastung des Systems führen. Mit der Nachrichtenwarteschlange kann eine große Anzahl von Anfragen über einen langen Zeitraum zwischengespeichert und verarbeitet werden, was die Systemstabilität und das Benutzererlebnis erheblich verbessern kann.

3. Datenverteilung

Über die Nachrichtenwarteschlange können Daten zwischen mehreren Systemen ausgetauscht werden. Der Datengenerator muss sich nicht darum kümmern, wer die Daten verwendet. Er muss die Daten nur an die Nachrichtenwarteschlange senden, und der Datenbenutzer kann die Daten direkt in der Nachrichtenwarteschlange abrufen

Zweitens die Vor- und Nachteile von MQ

Vorteile: Entkopplung, Peak-Clipping, Datenverteilung

Zu den Nachteilen gehören :

1. Reduzierte Systemverfügbarkeit

Je mehr externe Abhängigkeiten das System einführt, desto schlechter wird die Systemstabilität. Sobald MQ ausfällt, wird dies Auswirkungen auf das Geschäft haben. Wie kann die hohe Verfügbarkeit von MQ sichergestellt werden?

2. Erhöhte Systemkomplexität

Das Hinzufügen von MQ hat die Komplexität des Systems erheblich erhöht. In der Vergangenheit gab es synchrone Remote-Aufrufe zwischen Systemen, jetzt werden asynchrone Aufrufe über MQ durchgeführt. Wie kann sichergestellt werden, dass Nachrichten nicht wiederholt konsumiert werden? Wie gehe ich mit Nachrichtenverlust um? Um also die Reihenfolge der Nachrichtenzustellung sicherzustellen?

3. Konsistenzprobleme

Nach der Verarbeitung des Geschäfts sendet System A Nachrichtendaten über MQ an die drei Systeme B, C und D. Wenn System B und System C die Verarbeitung erfolgreich durchführen, schlägt die Verarbeitung durch System D fehl. Wie kann die Konsistenz der Nachrichtendatenverarbeitung sichergestellt werden?

3. Vergleich verschiedener MQ- Produkte

Zu den Mainstream-MQ-Produkten auf dem Markt gehören derzeit Kafka, ActiveMQ, RocketMQ und RabbitMQ. Die entsprechenden Vergleichsinformationen lauten wie folgt:

4. RocketMQ- Schnellstart ( Standalone-Version )

RocketMQ ist die MQ-Middleware von Alibaba aus dem Jahr 2016, die in der Java-Sprache entwickelt wurde. Innerhalb von Alibaba übernimmt RocketMQ den Nachrichtenfluss in hochgradig gleichzeitigen Szenarien wie „Double 11“ und kann Nachrichten auf Billionenebene verarbeiten.

1. Laden Sie RocketMQ herunter_

Die offizielle Download-Adresse der Beispielversion:

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

2. Umweltanforderungen _

Linux64-Bit-System

JDK1.8 (64 Bit)

Für die Installation des Quellcodes muss Maven 3.2.x installiert werden

3. Installationsschritte _

A. Dieses Tutorial wird als Binärpaket installiert

1. Entpacken Sie das Installationspaket

2. Geben Sie das Installationsverzeichnis ein

B. Einführung in den Katalog

bin: Startskripte, einschließlich Shell-Skripte und CMD-Skripte

conf: Instanzkonfigurationsdateien, einschließlich Broker-Konfigurationsdateien, Logback-Konfigurationsdateien usw.

lib: hängt von JAR-Paketen ab, einschließlich Netty, commons-lang, FastJSON usw.

C. Starten Sie RocketMQ

1. NameServer starten

#NameServer starten _

nohup sh bin/mqnamesrv &

#Startprotokoll anzeigen

tail -f ~/logs/rocketmqlogs/namesrv.log

2. Starten Sie den Broker

#Broker starten _

nohup sh bin/mqbroker -n localhost:9876 &

#Startprotokoll anzeigen

tail -f ~/logs/rocketmqlogs/broker.log

3. Mögliche Probleme

Der Standardspeicher der virtuellen Maschine von RocketMQ ist relativ groß. Wenn Sie Broker aufgrund unzureichenden Speichers nicht starten können, müssen Sie die folgenden beiden Konfigurationsdateien bearbeiten, um die JVM-Speichergröße zu ändern.

#Bearbeiten Sie runbroker.sh und runserver.sh , um die Standard- JVM -Größe zu ändern

vi runbroker.sh

vi runserver.sh

#Referenzeinstellungen _

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

4. Testen Sie RocketMQ

A. Senden Sie eine Nachricht

#Umgebungsvariablen festlegen

exportieren Sie NAMESRV_ADDR=localhost:9876

#Verwenden Sie die Demo des Installationspakets, um eine Nachricht zu senden

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

B. Eine Nachricht empfangen

#Umgebungsvariablen festlegen

exportieren Sie NAMESRV_ADDR=localhost:9876

#Nachricht empfangen

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

C. Schließen Sie RocketMQ

# NameServer schließen

sh bin/mqshutdown namensrv

#Broker schließen _

sh bin/mqshutdown-Broker

Supongo que te gusta

Origin blog.csdn.net/wanghaiping1993/article/details/131257231
Recomendado
Clasificación