Implementierungsschritte zur Installation von RocketMQ im Docker

Implementierungsschritte zur Installation von RocketMQ im Docker

1. Rufen Sie das Bild ab

Docker-Suche Rocketmq 

Abrufen einer bestimmten Version

curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags | tr -d '[\[\]" ]' | tr '}' '\n' | awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}' 

Alle Versionen des aktuellen Image-Shell-Befehls anzeigen

curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\
| tr -d '[\[\]" ]' | tr '}' '\n'\
| awk -F: -v Bild = 'foxiswho/rocketmq' '{wenn (NR!=NF && $3 != ""){printf("%s:%s\n",Bild,$3)}}' 

2. Broker-Server erstellen

docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server-4.5.1 

3. Einen Broker erstellen

docker run -d -p 10911:10911 -p 10909:10909\
 --name rmqbroker --link rmqserver:namesrv\
 -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt"\
 -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m"\
 foxiswho/rocketmq:broker-4.5.1 

Broker.conf konfigurieren

Geben Sie den rmqbroker-Container ein

docker exec -it rmqbroker /bin/bash

cd /etc/rocketmq/

vi broker.conf

4. RocketMQ-Konsole erstellen

docker run -d --name rmqconsole -p 8180:8080 --link rmqserver:namesrv\
 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876\
 -Dcom.rocketmq.sendMessageWithVIPChannel=false"\
 -t styletang/rocketmq-console-ng 

Überprüfen Sie anschließend den Startstatus mit dem folgenden Befehl

Docker PS | grep rocketmq

http://192.168.23.131:8180/

5. Testen

Da ich rocketmq auf dem Hostcomputer installiert habe, sieht der Test wie folgt aus:

#Testbefehl zum Senden von Nachrichten sh tools.sh org.apache.rocketmq.example.quickstart.Producer 

#Testnachrichten-Empfangsbefehl sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

6. Java-Beispiel

<Abhängigkeit>
	    <groupId>org.apache.rocketmq</groupId>
	    <artifactId>RocketMQ-Client</artifactId>
	    <version>4.9.2</version>
	</Abhängigkeit>

Nachrichtenversand (Produzent sendet synchrone Nachrichten)

importiere org.apache.rocketmq.client.producer.DefaultMQProducer;
importiere org.apache.rocketmq.client.producer.SendResult;
importiere org.apache.rocketmq.common.message.Message;
importiere org.apache.rocketmq.remoting.common.RemotingHelper;
 
 
öffentliche Klasse SyncProducer {
	öffentliche statische void main(String[] args) wirft Exception {
    	// Instanziieren Sie den Nachrichtenproduzenten Producer
        DefaultMQProducer-Produzent = neuer DefaultMQProducer("zhuzeqing-1");
    	// Adresse des NameServers festlegen producer.setNamesrvAddr("192.168.23.131:9876");
    	// Starten Sie die Producer-Instanz producer.start();
    	für (int i = 0; i < 1; i++) {
    	    //Erstellen Sie eine Nachricht und geben Sie Thema, Tag und Nachrichtentext an. Nachricht msg = neue Nachricht("zhuzeqing-1-Topic" /* Thema */,
        	"TagA" /* Tag */,
        	("hallo, rocketmq --" + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Nachrichtentext */
        	);
        	// Eine Nachricht an einen Broker senden
            SendResult sendResult = Produzent.send(msg);
            // Verwenden Sie sendResult, um zurückzugeben, ob die Nachricht erfolgreich zugestellt wurde. System.out.printf("%s%n", sendResult);
    	}
    	// Wenn keine weiteren Nachrichten gesendet werden, schließen Sie die Producer-Instanz.
    	Produzent.shutdown();
    }
}

Konsumnachrichten

importiere java.util.List;
 
importiere org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
importiere org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
importiere org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
importiere org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
importiere org.apache.rocketmq.client.exception.MQClientException;
importiere org.apache.rocketmq.common.message.MessageExt;
 
öffentliche Klasse Verbraucher {
 
	public static void main(String[] args) throws InterruptedException, MQClientException {
 
    	// Instanziieren Sie den Verbraucher DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("zhuzeqing-1");
 
    	// NameServer-Adresse festlegen consumer.setNamesrvAddr("192.168.23.131:9876");
 
    	// Abonnieren Sie ein oder mehrere Themen und Tags, um die Nachrichten zu filtern, die konsumiert werden müssen consumer.subscribe("zhuzeqing-1-Topic", "*");
    	// Registrieren Sie die Callback-Implementierungsklasse, um die vom Broker zurückgeholten Nachrichten zu verarbeiten consumer.registerMessageListener(new MessageListenerConcurrently() {
            öffentliche ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext Kontext) {
                System.out.printf("%s Neue Nachrichten empfangen: %s %n", Thread.currentThread().getName(), msgs);
                // Markieren, dass die Nachricht erfolgreich konsumiert wurde return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        // Starten Sie die Consumer-Instanz consumer.start();
        System.out.printf("Verbraucher gestartet.%n");
	}
}

VII. Sonstiges

Überprüfen Sie die rmqbroker-IP

Docker-Inspektion RMQBroker 

Der Standardpfad der Konfigurationsdatei im Broker-Container lautet

/etc/rocketmq/broker.conf

Offizielle Website: Apache RocketMQ

siehe:

Installation und Verwendung von RocketMQ in Docker_Feng Libins Blog-CSDN Blog_docker rocketmq

Dies ist das Ende dieses Artikels über die Implementierungsschritte zur Installation von RocketMQ in Docker. Weitere Informationen zur Installation von RocketMQ in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Ein sehr ausführliches Tutorial zur Installation von rocketmq unter Docker Desktop
  • Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)
  • Detaillierte Installation und Verwendung von RocketMQ in Docker
  • Docker-Installation von RocketMQ und Lösungen für während der Installation aufgetretene Probleme

<<:  Einige Schlussfolgerungen zur Entwicklung mobiler Websites

>>:  So verhindern Sie, dass Flash HTML-Div-Elemente abdeckt

Artikel empfehlen

So beenden Sie den MySQL-Prozess ordnungsgemäß und sicher

Vorwort In diesem Artikel wird der Vorgang zum He...

Detaillierte Erklärung der Speicher-Engine in MySQL

Übersicht über die MySQL-Speicher-Engine Was ist ...

Beispielerklärung von MySQL-Fremdschlüsseleinschränkungen

Die Fremdschlüsseleinschränkung von MySQL dient z...

Bringen Sie Ihnen bei, ein einfaches Versprechen Schritt für Schritt umzusetzen

Inhaltsverzeichnis Schritt 1: Erstellen Sie das F...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip

1. Laden Sie das MySQL 5.7.11 Zip-Installationspa...

Berechnung des Prozentwerts, wenn die CSS-Positionseigenschaft absolut ist

Wenn die Position absolut ist, wird der Prozentsa...

So verwenden Sie CocosCreator zum Erstellen eines Schießspiels

Analysieren Sie die Produktionsschritte: 1. Resso...

Der beste Weg, ein JAR-Paketprojekt unter einem Centos7-Server zu starten

Vorwort Jeder weiß, wie man ein JAR-Paket unter L...

Zusammenfassung der Vorteile der Bereitstellung von MySQL Delayed Slaves

Vorwort Die Master-Slave-Replikationsbeziehung vo...

11 Linux-KDE-Anwendungen, die Sie nicht kannten

KDE Abkürzung für Kool Desktop Environment. Eine ...

Schritte zum Installieren von Superset unter dem Win10-System

Superset ist ein leichtes Self-Service-BI-Framewo...

Docker-Praxis: Python-Anwendungscontainerisierung

1. Einleitung Container nutzen einen Sandbox-Mech...