In diesem Artikel geht es hauptsächlich um die grundlegende Integration. Beginnen wir zuerst den Code und sprechen Sie dann über erweiterte Funktionen.
Einige Begriffe in Rabbitmq
Wenn Sie die Rabbitmq -Webkonsole öffnen, werden Sie feststellen, dass eines der Aufnahmen schwer zu verstehen ist. Lassen Sie es mich unten kurz erklären.
Austausch
Ein Schalter ist wie ein Router. Wir senden zuerst Nachrichten an den Switch und dann liefert der Switch Nachrichten an die entsprechende Warteschlange gemäß der Routing -Taste. (Es ist wichtig, dieses Konzept zu verstehen, und dies spiegelt sich voll und ganz im nachfolgenden Code wider)
Warteschlange
Die Warteschlange ist leicht zu verstehen, daher besteht keine Notwendigkeit, sie zu erklären.
Bindung
Woher weiß der Switch, welche Warteschlange für diese Nachricht übermittelt werden soll? Dies erfordert eine Bindung. Es ist wahrscheinlich: Verwenden Sie einen RoutingKey, um eine Warteschlange an einen bestimmten Austausch zu binden, damit der Switch weiß, in welche Warteschlange die Nachricht entsprechend dem Routing -Schlüssel übermittelt werden soll. (Dies spiegelt sich in dem nachfolgenden Code vollständig wider)
Schließen Sie sich Rabbitmq Maven -Abhängigkeiten an
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Amqp </artifactid> </abhängig>
Fügen Sie eine andere Abhängigkeit hinzu (diese Abhängigkeit kann weggelassen werden, die hauptsächlich zur Vereinfachung des Codes verwendet werden).
<Depopentcy> <gruppe> cn.hutool </gruppeId> <artifactId> hutool-all </artifactid> <version> 4.0.2 </Version> </abhängig>
Rabbitmqconfig.java -Konfiguration
@ConfigurationPublic Class Rabbitmqconfig {public Final Static String queue_name = "Spring-Boot-Queue"; public Final Static String Exchange_Name = "Spring-Boot-Exchange"; public Final Static String routing_key = "Spring-Boot-Key"; // Erstellen Sie eine Warteschlange @Bean Public Queue Queue () {return New Queue (queue_name); } // Erstellen eines Themas type tausch @Bean public topicexchange exchange () {return New topicexChange (Exchange_name); } // Verwenden Sie den Routing -Schlüssel (RoutingKey), um die Warteschlange zu binden (Warteschlangenwarteschlange, topicexchange Exchange) {return bindingBuilder.bind (Warteschlange) .to (Exchange) .With (Routing_key); } @Bean public ConnectionFactory ConnectoryFactory () {CachingConnectionFactory Connectory Connectory = new CachingConnectionFactory ("127.0.0.1", 5672); ConnectionFactory.Setusername ("Gast"); ConnectionFactory.SetPassword ("Gast"); return ConnectionFactory; } @Bean Public Rabbittemplate Rabbittemplate (ConnectionFactory ConnectoryFactory) {Neue Rabbittemplate zurückgeben (ConnectionFactory); }}Produzent
Rufen Sie einfach die ConvertandSend -Methode von Rabbittemplate direkt an. Aus dem folgenden Code ist auch ersichtlich, dass wir die Nachricht nicht direkt an die Warteschlange senden, sondern zuerst an den Switch senden, und der Switch liefert dann unsere Nachricht an die entsprechende Warteschlange gemäß dem Routing -Schlüssel.
@RestControllerPublic Class Producontroller {@autowired Private Rabbittemplate Rabbittemplate; @Getmapping ("/sendMessage") public Object sendMessage () {neuer Thread (()-> {für (int i = 0; i <100; i ++) {String value = new DateTime (). ToString ("yyyyy-mm-dd hh: mm: ss"); Rabbittemplate.ConvertandSend (RabbitMQConfig.Exchange_name, RabbitMqconfig.routing_key, value); zurück "ok"; }}Verbraucher
Es ist auch sehr einfach für Verbraucher. Sie müssen nur die @rabbitlistener -Annotation zur entsprechenden Methode hinzufügen und den Namen der angehenden Warteschlange angeben.
@ComponentPublic Class Consumer {@rabbitListener (queues = rabbitmqconfig.queue_name) public void ConsumptionMessage (String -Nachricht) {console.log ("Consume message {}", Nachricht); }}Führen Sie das Projekt aus
Führen Sie das Projekt aus, öffnen Sie dann den Browser und geben Sie http://localhost:9999/sendMessage ein. Auf der Konsole sehen Sie, wie die Hersteller ständig Nachrichten senden, und die Verbraucher konsumieren ständig Nachrichten.
Öffnen Sie die Rabbitmq -Webkonsole und Sie können auch die Switches und Warteschlangen sehen, die wir gerade im Code konfiguriert haben, sowie die Bindungsinformationen.
Klicken Sie hier, um die Exchange -Details einzugeben
Abschluss
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.