Ich habe Frühlingsstiefel schon lange nicht mehr geschrieben. Ich habe in letzter Zeit Spring Cloud Bus geschrieben. Da der Inhalt relevant ist, werde ich einen Beitrag zur Integration von AMQP hinzufügen.
Einführung in Message Broker und AMQP
Message Broker ist ein Architekturmodell für die Überprüfung der Nachrichten, die Übertragung und das Routing. Die Designziele werden hauptsächlich in den folgenden Szenarien verwendet:
AMQP ist die Abkürzung des erweiterten Message -Warteschlangenprotokolls, eines offenen Standard -Anwendungsschichtprotokolls für Message Middleware. AMQP definiert diese Funktionen:
Rabbitmq
Der in diesem Artikel eingeführte RabbitMQ ist ein mit dem AMQP -Protokoll implementiertes Middleware -Produkt. Es kann mehrere Betriebssysteme und mehrere Programmiersprachen unterstützen und fast alle Mainstream-Technologieplattformen auf Unternehmensebene abdecken.
Installieren
Auf der Download -Seite der offiziellen Website von Rabbitmq https://www.rabbitmq.com/download.html können wir Installationspakete und Anweisungen für verschiedene Betriebssysteme erhalten. Hier erklären wir mehrere häufig verwendete Plattformen nacheinander.
Im Folgenden sind die Versionsbeschreibungen des von uns verwendeten Erlang- und Rabbitmq -Servers aufgeführt:
Windows -Installation
Installieren Sie Erland, holen Sie sich das EXE -Installationspaket über die offizielle Download -Seite http://www.erlang.org/downloads, öffnen Sie es direkt und vervollständigen Sie die Installation.
Installieren Sie Rabbitmq und erhalten Sie das EXE -Installationspaket über die offizielle Download -Seite https://www.rabbitmq.com/download.html.
Führen Sie nach Abschluss des Downloads den Installateur direkt aus.
Nach Abschluss der Installation des RabbitMQ -Servers registriert er sich automatisch als Dienst und beginnt mit der Standardkonfiguration.
Mac OS X -Installation
Wenn Sie Brew Tool in Mac OS X verwenden, können Sie den RabbitMQ -Server problemlos installieren. Befolgen Sie einfach den folgenden Befehl:
Über den obigen Befehl wird der Befehl rabbitmq server in/usr/local/sbin installiert und nicht automatisch zu den Umgebungsvariablen des Benutzers hinzugefügt. Daher müssen wir den folgenden Inhalt der Datei .bash_profile oder .profile hinzufügen:
Path = $ path:/usr/local/sbin
Auf diese Weise können wir den Rabbitmq-Server über den Befehl rabbitmq-server starten.
Ubuntu -Installation
In Ubuntu können wir das APT -Repository zur Installation verwenden
Installieren Sie Erlang und Execute: APT-Get Installieren Sie Erlang
Führen Sie den folgenden Befehl aus, um ein passendes Repository zu /etc/apt/sources.list.d hinzuzufügen
Echo 'Deb http://www.rabbitmq.com/debian/ testen main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Aktualisieren Sie die Paketliste des APT-Repositorys und führen Sie den Befehl sudo APT-Get-Aktualisierung aus
Installieren
Kaninchenmanagement
Wir können es direkt über den Konfigurationsdateizugriff oder über den Webzugriff verwalten. Im Folgenden werden wir vorstellen, wie man über das Web verwaltet wird.
Führen Sie den Befehl rabbitmq-plugins aktivieren Sie Rabbitmq_Management aktivieren, um das Web-Management-Plug-In zu aktivieren, damit wir es über den Browser verwalten können.
> Rabbitmq-Plugins aktivieren Rabbitmq_Management Die folgenden Plugins wurden aktiviert: Mochiweb Webmaachine Rabbitmq_Web_Dispatch Amqp_Client Rabbitmq_Management_agent Rabbitmq_Management Applying Plugin-Konfiguration an Rabbit@PC-201602152056 ...
Öffnen Sie den Browser und besuchen Sie: http: // localhost: 15672/und melden Sie sich mit dem Standardbenutzergast an, und das Passwort ist auch Gast. Wir können die Verwaltungsseite in der folgenden Abbildung sehen:
Aus der Abbildung können wir einige grundlegende Konzepte sehen, die im vorherigen Kapitel erwähnt wurden, wie z. B. Verbindungen, Kanäle, Austausch, Warteschlange usw. Leser, die sie zum ersten Mal verwenden, können darauf klicken, um zu sehen, welche Inhalte sie haben, und mit der Serverseite des Rabbitmq -Servers vertraut zu werden.
Klicken Sie auf die Registerkarte Admin, um Benutzer hier zu verwalten.
Spring -Boot -Integration
Im Folgenden haben wir ein intuitives Gefühl und Verständnis von Rabbitmq durch die Integration von Rabbitmq in die Spring -Boot -Anwendung und das Implementieren eines einfachen Beispiels für das Senden und Empfangen von Nachrichten.
Das Integrieren von Rabbitmq in Spring Boot ist sehr einfach, da wir schon einmal Starter -POMs eingeführt haben und das AMQP -Modul Rabbitmq gut unterstützen kann. Sprechen wir im Detail über den Integrationsprozess:
Erstellen Sie ein neues Spring Boot-Projekt mit dem Namen "Rabbitmq-Hello".
In pom.xml werden die folgenden Abhängigkeiten eingeführt, in denen Spring-Boot-Starter-AMQP zur Unterstützung von Rabbitmq verwendet wird.
<sport> <GroupId> org.springFramework.boot </GroupId> <artifactID> Spring-Boot-Starter-Eltern </artifactId> <version> 1.3.7.Release </Version> <relativePath/> <!-Lookup Parent aus repository-> </parent> <abhängigkeiten> <abhängigkeit> <abhängigkeiten> <gruppe <gruppe <gruppe; <artifactid> Spring-Boot-Starter-Amqp </artifactId> </abhängig> <depecled> <gruppe> org.springFramework.boot </Groupid> <ArtifactID> Spring-Boot-Starter-Test </artifactid> <Scope> test </scope> </abhängig> </abhängig> </abhängig> </abhängig> </abhängen
Konfigurieren Sie die Verbindungs- und Benutzerinformationen zu Rabbitmq in application.properties. Benutzer können zu den oben genannten Installationsinhalten zurückkehren und Benutzer auf der Verwaltungsseite erstellen.
Spring.Application.Name = Rabbitmq-Hello
Spring.rabbitmq.host = localHostspring.rabbitmq.port = 5672spring.rabbitmq.username = Springspring.Rabbitmq.Password = 123456
Message Producer Sender erstellen. Die AMQptemplate -Schnittstelle definiert einen Satz grundlegender Operationen für das AMQP -Protokoll, indem eine Instanz der AMQptemplate -Schnittstelle injiziert wird. Im Spring Boot wird seine spezifische Implementierung gemäß der Konfiguration injiziert. In diesem Produzenten erstellen wir eine Zeichenfolge und senden sie an eine Warteschlange namens Hello.
@ComponentPublic Class Sender {@autowired private amqptemplate rabbittemplate; public void send () {String context = "Hallo" + neues Datum (); System.out.println ("Absender:" + Kontext); this.rabbittemplate.convertandSend ("Hallo", Kontext); }} Erstellen Sie Nachrichtenkonsumentenempfänger. Die @rabbitListener -Annotation definiert das Anhören der Hello -Warteschlange dieser Klasse und verwendet die @rabbitHandler -Annotation, um die Verarbeitungsmethode für die Nachricht anzugeben. Daher erkennt der Verbraucher den Verbrauch der Hello -Warteschlange, und der Verbrauchsvorgang ist der String -Inhalt der Ausgabenachricht.
@Component @rabbitListener (queues = "hello") öffentlicher Klasse Receiver {@rabbitHer public void prozess (String Hallo) {System.out.println ("Empfänger:" + Hallo); }} Erstellen Sie RabbitMQ -Konfigurationsklasse RabbitConfig, mit der erweiterte Informationen wie Warteschlangen, Switches und Routing konfiguriert werden. Hier konzentrieren wir uns auf den Einstieg und definieren Sie sie zunächst mit einer minimierten Konfiguration, um einen grundlegenden Produktions- und Verbrauchsprozess abzuschließen.
@ConfigurationPublic Class RabbitConfig {@Bean public Queue Helloqueue () {Neue Warteschlange zurückgeben ("Hallo"); }} Erstellen Sie die Hauptantragsklasse:
@SpringbootApplicationPublic Class HelloApplication {public static void main (String [] args) {SpringApplication.run (HelloApplication.Class, Args); }} Erstellen Sie eine Unit -Testklasse, um die Produktion von Call -Nachrichten zu erhalten:
@Runwith (SpringJunit4ClASSRunner.class) @SpringApplicationConfiguration (classes = helloApplication.class) öffentliche Klasse HelloApplicationTests {@autowired Private Sender Sender; @Test public void hello () löst Ausnahme aus {sender.send (); }}Versuchen Sie nach Abschluss des Programms zum Programm, es auszuführen. Stellen Sie zunächst sicher, dass der Rabbitmq -Server begonnen hat, und führen Sie dann die folgenden Vorgänge aus:
Starten Sie die Anwendungs -Hauptklasse aus der Konsole. Wir sehen den folgenden Inhalt. Das Programm erstellt eine Verbindung zum Zugriff auf Springcloud 127.0.0.1:5672.
Kopieren Sie den Code wie folgt: OsarccachingConnectionFactory: Erstellt eine neue Verbindung: SimpleConnection@29836D32 [delegate = amqp: //[email protected]: 5672/]
Gleichzeitig können wir über das RabbitMQ -Bedienfeld sehen, dass die Einträge, die die aktuelle Verbindung in Verbindung und Kanäle enthalten,.
Führen Sie die Unit -Testklasse aus und wir können die folgende Ausgabe in der Konsole sehen, und die Nachricht wird an die Hello -Warteschlange des Rabbitmq -Servers gesendet.
Absender: Hallo Sonne, 25. September 11:06:11 CST 2016
Wechseln Sie zur Konsole der Hauptklasse der Anwendung. Wir können die folgende Ausgabe sehen, der Verbraucher führt das Listener -Programm der Hello -Warteschlange aus und gibt die empfangenen Nachrichteninformationen aus.
Empfänger: Hallo Sonne, 25. September 11:06:11 CST 2016
Im obigen Beispiel haben wir das Spring-Boot-Starter-AMQP-Modul in der Spring-Boot-Anwendung eingeführt und einfach so konfiguriert, dass sie den Entwicklungsinhalt der Produktion und des Verbrauchs von Rabbitmq-Nachrichten vervollständigen. In den tatsächlichen Anwendungen haben wir jedoch immer noch viele Inhalte, die nicht nachgewiesen wurden, sodass wir hier nicht mehr Erklärungen geben werden. Die Leser können die offiziellen Rabbitmq -Tutorials selbst überprüfen, um ein umfassenderes Verständnis zu erlangen.
Vollständiges Beispiel: Kapitel 5-2-1
Open Source China: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
Github: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.