1. Holen Sie sich das Bild #Geben Sie die Version an, die die Web-Kontrollseite docker pull rabbitmq:management enthält 2. Ausführen des Images #Methode 1: Standardmäßiger Gastbenutzer, das Passwort lautet ebenfalls Gast docker run -d --hostname mein-Kaninchen --name Kaninchen -p 15672:15672 -p 5672:5672 rabbitmq:management #Methode 2: Benutzernamen und Passwort festlegen docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=Benutzer -e RABBITMQ_DEFAULT_PASS=Passwort -p 15672:15672 -p 5672:5672 rabbitmq:management 3. Zugriff auf die UI-Seite http://localhost:15672/ 4. Golang-Fall #Produzent Produzent Code Paket Haupt importieren ( "fmt" "Protokoll" „github.com/streadway/amqp“ ) Konstante ( //AMQP-URI uri = "amqp://guest:[email protected]:5672/" // 10.0.0.11 ist die Host-IP //Dauerhafter AMQP-Austauschname Austauschname = "" //Dauerhafter AMQP-Warteschlangenname Warteschlangenname = "Testwarteschlangen" //Nachrichtentext bodyMsg string = "hallo Engel" ) //Wenn ein Fehler auftritt, dann Ausgabe func failOnError(err error, msg string) { wenn err != nil { log.Fatalf("%s: %s", Nachricht, Fehler) Panik(fmt.Sprintf("%s: %s", Nachricht, Fehler)) } } Funktion main() { //Rufen Sie die Funktion zum Veröffentlichen von Nachrichten auf: publish(uri, exchangeName, queueName, bodyMsg) log.Printf("veröffentlicht %dB OK", len(bodyMsg)) } //Publisher-Methode //@amqpURI, amqp-Adresse //@exchange, Exchange-Name //@queue, Warteschlangenname //@body, Body-Inhalt func publish(amqpURI-Zeichenfolge, Exchange-Zeichenfolge, Warteschlangen-Zeichenfolge, Body-Zeichenfolge) { //Verbindung herstellen log.Printf("dialing %q", amqpURI) Verbindung, Fehler := amqp.Dial(amqpURI) failOnError(err, "Verbindung zu RabbitMQ konnte nicht hergestellt werden") Verbindung verschieben.Schließen() //Kanal erstellen log.Printf("Verbindung hergestellt, Kanal wird abgerufen") Kanal, Fehler := Verbindung.Kanal() failOnError(err, "Kanal konnte nicht geöffnet werden") Kanal verschieben.Schließen() log.Printf("Warteschlange erhalten, %q deklariert", Warteschlange) //Eine Warteschlange erstellen q, err := Kanal.QueueDeclare( Warteschlangenname, // Name false, // dauerhaft false, // löschen, wenn nicht verwendet false, // exklusiv false, // nein-warten nil, // Argumente ) failOnError(err, "Fehler beim Deklarieren einer Warteschlange") log.Printf("deklarierte Warteschlange, veröffentlicht %dB-Body (%q)", len(Body), Body) // Der Produzent kann nur an die Börse senden, nicht direkt an die Warteschlange. // Jetzt verwenden wir die Standardbörse (Name ist ein leeres Zeichen). Diese Standardbörse ermöglicht uns das Senden an die angegebene Warteschlange. // routing_key ist der angegebene Warteschlangenname err = channel.Publish( Austausch, // Austausch q.Name, // Routing-Schlüssel false, // obligatorisch false, // sofort amqp.Veröffentlichung{ Überschriften: amqp.Table{}, Inhaltstyp: "text/plain", Inhaltskodierung: "", Körper: []byte(körper), }) failOnError(err, "Die Veröffentlichung einer Nachricht ist fehlgeschlagen") } 5. Eigener Nachrichtenbestätigungscode #Produzent Paket Haupt importieren ( "fmt" „github.com/streadway/amqp“ "Protokoll" "os" "Saiten" ) Konstante ( //AMQP-URI uri = "amqp://guest:[email protected]:5672/" //Dauerhafter AMQP-Austauschname Austauschname = "" //Dauerhafter AMQP-Warteschlangenname Warteschlangenname = "Testwarteschlangen-Bestätigungen" ) //Wenn ein Fehler auftritt, dann Ausgabe func failOnError(err error, msg string) { wenn err != nil { log.Fatalf("%s: %s", Nachricht, Fehler) Panik(fmt.Sprintf("%s: %s", Nachricht, Fehler)) } } Funktion main() { bodyMsg := bodyFrom(os.Args) //Rufen Sie die Funktion zum Veröffentlichen von Nachrichten auf: publish(uri, exchangeName, queueName, bodyMsg) log.Printf("veröffentlicht %dB OK", len(bodyMsg)) } Funktion bodyFrom(args []string) string { var s Zeichenfolge wenn (Länge(Argumente) < 2) || os.Args[1] == "" { s = "hallo Engel" } anders { s = Zeichenfolgen.Join(args[1:], " ") } Rücksendungen } //Publisher-Methode //@amqpURI, amqp-Adresse //@exchange, Exchange-Name //@queue, Warteschlangenname //@body, Body-Inhalt func publish(amqpURI-String, Exchange-String, Queue-String, Body-String) { //Verbindung herstellen log.Printf("dialing %q", amqpURI) Verbindung, Fehler := amqp.Dial(amqpURI) failOnError(err, "Verbindung zu RabbitMQ konnte nicht hergestellt werden") Verbindung verschieben.Schließen() //Kanal erstellen log.Printf("Verbindung hergestellt, Kanal wird abgerufen") Kanal, Fehler := Verbindung.Kanal() failOnError(err, "Kanal konnte nicht geöffnet werden") Kanal verschieben.Schließen() log.Printf("Warteschlange erhalten, %q deklariert", Warteschlange) //Eine Warteschlange erstellen q, err := Kanal.QueueDeclare( Warteschlangenname, // Name false, // dauerhaft false, // löschen, wenn nicht verwendet false, // exklusiv false, // nein-warten nil, // Argumente ) failOnError(err, "Fehler beim Deklarieren einer Warteschlange") log.Printf("deklarierte Warteschlange, veröffentlicht %dB-Body (%q)", len(Body), Body) // Der Produzent kann nur an den Austausch senden, es kann nicht direkt an die Warteschlange gesendet werden. // Im Moment verwenden wir den Standardaustausch (mit einer leeren Zeichenfolge als Namen). Dieser Standardaustausch ermöglicht uns das Senden an eine bestimmte Warteschlange. // Routing-Schlüssel ist der angegebene Warteschlangenname. err = Kanal.Veröffentlichen( Austausch, // Austausch q.Name, // Routing-Schlüssel false, // obligatorisch false, // sofort amqp.Veröffentlichung{ Überschriften: amqp.Table{}, Inhaltstyp: "text/plain", Inhaltskodierung: "", Körper: []byte(körper), }) failOnError(err, "Die Veröffentlichung einer Nachricht ist fehlgeschlagen") } Dies ist das Ende dieses Artikels über die Schritte zur schnellen Installation von RabbitMQ mit Docker. Weitere Informationen zur Installation von RabbitMQ mit 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:
|
<<: Fallstudie zum Löschen und Neuinstallieren eines Mac-Knotens
>>: Detailliertes Tutorial zur Installation einer MySQL-Datenbank in einer Linux-Umgebung
#String-Verkettung concat(s1,s2); verkette die St...
Das Ergebnis (vollständiger Code unten): Die Impl...
MTR steht für Mini-Transaktion. Wie der Name scho...
Wenn Sie mit der Arbeit an einem Projekt beginnen...
Bei der Entwicklung für Mobilgeräte tritt häufig ...
Inhaltsverzeichnis Abstraktion und Wiederverwendu...
Ich habe vor Kurzem Docker gelernt und stoße dabe...
1. Überwachungsplanung Bevor Sie ein Überwachungs...
Inhaltsverzeichnis Voraussetzungen Einrichten ein...
In diesem Artikelbeispiel wird der spezifische Co...
Da eine bestimmte Funktion meines Projekts erford...
Vorwort Normaler Geschäftsbedarf: Hochladen von B...
Inhaltsverzeichnis 1. Umweltvorbereitung 1.1 Betr...
Inhaltsverzeichnis 1. Einfügen 2. Aktualisierung ...
Inhaltsverzeichnis 1.0 Einleitung 2.0 Docker-Inst...