Rabbitmq ist eine häufig verwendete AMQP -Implementierung. Dieser Artikel ist ein einfaches Tutorial zur Integration von Rabbitmq in Spring Boot.
Installieren Sie den ActiveMQ -Server (Sie können ihn auch nicht installieren. Wenn er nicht installiert ist, verwenden Sie Speicher MQ).
Erstellen Sie das Spring -Boot -Projekt und fügen Sie Abhängigkeiten hinzu. Fügen Sie einfach diesen Artikel hinzu
<!-Activemq-Abhängigkeit hinzufügen-> <depeencing> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Activemq </artifactid> </abhängig>
Anwendungsklasse hinzufügen
@SpringBootApplication@enableScheduling // Nachrichten mit einer zeitgesteuerten Task öffentliche Klasse MQTestApplication {public static void main (String [] args) {SpringApplication.run (mqTestApplication.class, Args); }} Konfigurieren Sie application.yml
Frühling: Activemq: Broker-URL: TCP: //127.0.01: 61616 Pakete: Trust-All: TRUE
Um ein Datenmodell zu erstellen, sind die Datentypen, die gesendet und konsumiert werden können,: String, Byte -Array, Map <String,?>, Serialisierbares Objekt.
// Wenn die gesendete Nachricht ein Objekt ist, muss sie eine serialisierbare Schnittstelle öffentliche Klasse tmodel implementiert, serialisierbare {private statische endgültige long serialversionuid = -921008687184331557l; private Int Count; public tmodel (int count) {this.count = count; } @Override public String toString () {return "tmodel [count =" + count + "]"; }} Einen Produzenten bauen
@ComponentPublic Class Producer {// Inject JmStemplate in den Produzenten injizieren, können wir Nachrichten über diese Vorlage senden private endgültige jmstemplate jmstemplate; private int count = 0; @Autowired Public Producer (JMStemplate JmStemplate) {this.jmStemplate = jmStemplate; } // Hier verwenden wir die zeitgesteuerte Aufgabe von Spring Boot, um Nachrichten @Scheduled (FixedRate = 1000) public void create () {// ConvertandSend zu senden, um Nachrichten zu senden. }} Verbraucher bauen
@ComponentPublic Class Consumer {@jmsListener (destination = "queue1") public void comsume (tmodel content) {system.out.println ("Aufnahmenachricht aus Queue1 [" + content + "]"); }}Besonderer Hinweis: Wenn sich unsere Hersteller und Verbraucher in verschiedenen Modulen befinden, ist es am besten, die Daten in ein öffentliches Modul abstrahieren. Das Programm serialisiert und deserialisiert Objekte durch serialisierbares. Es ist notwendig, sicherzustellen, dass die Serialversionuid des Objektmodells des Herstellers und des Verbrauchers konsistent ist.
Projektadresse: https://github.com/ldwqh0/active-mq-Spring.git
Beispiel: Konfigurieren Sie Rabbitmq und fügen Sie eine Warteschlange hinzu
@ConfigurationPublic Class Aqueue {@BeanPublic Queue Queue () {Neue Warteschlange zurückgeben ("Good");}}Definieren Sie einen Produzenten.
Wenn Activemq aktiviert ist, wird automatisch eine AmQptemplate erstellt, die überall dort injiziert werden kann, wo Sie benötigen. Wir können Nachrichten über diese AmQptemplate an MQ senden
/*** Definieren Sie einen Produzenten*@Author Lidong*/@rastController@requestmapPing ("/test") öffentliche Klasse SendController {@autowiredPrivate AmQptemPlate -Vorlage; @getMappingPublic String testend () {// Meldung mit Amqptemplate -Template.convert und} ("Good", "Good"; Definieren Sie den Verbraucher, geben Sie die Warteschlange des Verbrauchs an, indem Sie RabbitListener angeben (Queues = 'Good').
@ComponentPublic Class Consumer {/*** Definieren Sie einen Verbraucher*@param meldung*/ @rabbitListener (queues = "good") public void Handler (String -Nachricht) {System.out.println ("Aufnahmenachricht aus" + meldung);}}}}}}}}Starten Sie den Test und geben Sie http: // localhost: 8080/test im Browser ein, um eine Nachricht an die Warteschlange zu senden. Dieses Spaltenpaar kann vom Verbraucher verarbeitet werden
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.