So installieren Sie RabbitMQ schnell in Docker

So installieren Sie RabbitMQ schnell in Docker

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:
  • Detaillierte Vorgänge zum Erstellen des gemeinsamen Clusters und des Spiegelclusters von RabbitMq mit Docker
  • Eine detaillierte Einführung in die Bereitstellung einer RabbitMQ-Umgebung mit Docker
  • Beim Bereitstellen von rabbitmq mit Docker sind zwei Probleme aufgetreten
  • Das Problem, dass bei der Installation von RabbitMQ in Docker die Verwaltungsseite nicht aufgerufen werden kann
  • Docker-Bereitstellung – Analyse des Implementierungsprozesses für RabbitMQ-Container
  • Docker installiert und führt den RabbitMQ-Beispielcode aus
  • So stellen Sie einen RabbitMQ-Cluster mit Docker bereit
  • So erstellen Sie eine RabbitMQ-Clusterumgebung mit Docker
  • Docker-Installations- und Konfigurationsschritte für RabbitMQ

<<:  Fallstudie zum Löschen und Neuinstallieren eines Mac-Knotens

>>:  Detailliertes Tutorial zur Installation einer MySQL-Datenbank in einer Linux-Umgebung

Artikel empfehlen

Was ist das Basis-Tag und was macht es?

Der <base>-Tag gibt die Standardadresse ode...

CentOS7 64-Bit-Installation MySQL Grafik-Tutorial

Voraussetzungen für die Installation von MySQL: I...

Zwei Methoden zum Wiederherstellen von MySQL-Daten

1. Einleitung Vor einiger Zeit gab es eine Reihe ...

MySQL-Sortierprinzipien und Fallanalyse

Vorwort Das Sortieren ist eine grundlegende Funkt...

Details zu Linux-Dateideskriptoren, Dateizeigern und Inodes

Inhaltsverzeichnis Linux - Dateideskriptor, Datei...

Eine kurze Diskussion über die Sortierabfrage mit angegebener MySQL-Reihenfolge

Vor kurzem habe ich an einem Großbildschirmprojek...

So installieren Sie das Programm setup.py unter Linux

Führen Sie zuerst den Befehl aus: [root@mini61 se...

So installieren und konfigurieren Sie den Supervisor-Daemon unter CentOS7

Neuling, nimm es selbst auf 1. Supervisor install...

Vue-Anfängerhandbuch: Erstellen des ersten Vue-cli-Scaffolding-Programms

1. Vue – Das erste Vue-CLI-Programm Die Entwicklu...

Umfassende Zusammenfassung der MySQL-Funktionen

Inhaltsverzeichnis 1. Häufig verwendete Zeichenfo...

Einführung in die Rolle des HTML-Doctypes

Der Dokumentmodus verfügt über die folgenden zwei ...