Pesan Middleware sangat membantu untuk memisahkan dan menghapus puncak antara sistem kami. Spring Boot juga mengintegrasikan isi bagian ini, dan hal termudah untuk diintegrasikan adalah RabbitMQ. Hari ini kita akan menggunakan RabbitMQ sebagai contoh.
Aturan lama, mari kita lihat pom terlebih dahulu
<dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter </arttifactid> </gandendency> <ArtifactId> <RoupDid> org.springframework.boot </groupid> <ArTifactId> Spring-starter-starter </art/groupid> <ArTifactID> <Artifactid> <groupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-AMQP </artifactid> </gandendency> <dependency> <groupid> org.projectlombok </groupid> <Artifactid> lombok </arttifactid> </ketergantungan>
AMQP, atau Protokol Antrian Pesan Lanjutan, protokol antrian pesan canggih tingkat aplikasi yang menyediakan layanan pesan terpadu, adalah standar terbuka dari protokol tingkat aplikasi dan dirancang untuk middleware berorientasi pesan. Klien dan pesan middleware berdasarkan protokol ini dapat menyampaikan pesan, dan tidak dibatasi oleh berbagai produk dan bahasa pengembangan klien/middleware. Spring-boot-starter-AMQP memperkenalkan RabbitMQ. Ada prasyarat: pertama instal server RabbitMQ di mesin Anda, dan kemudian jalankan server RabbitMQ-Server dan memulainya. Setelah memulai, kami dapat mengonfigurasi program klien kami. Pertama lihat file konfigurasi kami
spring.application.name: spirng-boot-rabbitmqspring.rabbitmq.host: 127.0.0.1spring.rabbitmq.port: 5672spring.rabbitmq.username: Guestspring.rabbitmq.password: Guest
IP server, port, nama pengguna, kata sandi, dan informasi dasar lainnya dikonfigurasi untuk memastikan bahwa kami dapat terhubung ke server.
Tambahkan kelas konfigurasi RabbitMQ
Paket com.shuqi; impor org.springframework.amqp.core.queue; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; u Quane) ognbitconfig {hello) {configuration public {configuration public { @configuration public { @configuration public { @configuration publicconfig {@beane {configuration publicconfig {@beane {@beancramation }}Antrian bernama Hello dibuat, dan produser dapat memasukkan data ke dalam antrian Hello, dan konsumen dapat mengkonsumsi data dari Hello Queue. Lihat penangan produsen
Paket com.shuqi.controller; impor org.springframework.amqp.core.amqptemplate; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.web.bind.annotation.requestmapping; org.springframework.web.bind.annotation.requestparam; impor org.springframework.web.bind.annotation.restController; @RestControllerPublic HelloController {@Autowired private AmqPtemplate Rabbittemplate; @RequestMapping ("/hello") Public String Hello (@RequestParam Name String) {rabbittemplate.convertandsend ("halo", "hello"+name); kembalikan "pesan yang berhasil dikirim"; }}Produksi pesan melalui pengontrol dan mengirim pesan melalui AmqPtemplate. Dengan produsen, mari kita lihat konsumen
Paket com.shuqi.consumer; import lombok.extern.slf4j.slf4j; impor org.springframework.amqp.rabbit.annotation.rabbithandler; impor org.springframework.amqp.rabbit.annotation.rabbitlistener; org.springframework.stereotype.component;@component@rabbitlistener (queuees = "hello")@slf4jpublic class helloconsumer {@rabbithandler proses public void (string hello) {log.info ("Pesan diterima: pesan: {}", hello); }}@RabbitListener (queues = "hello") berarti bahwa itu adalah pendengar RabbitMQ. Nama antrian pendengar adalah halo, yang berarti data pasti akan datang. Ketika data datang, data akan diproses melalui metode modifikasi @Rabbithandler. Mencetaknya. Mari kita mulai proyek dan lihat hasilnya.
Masukkan http: // localhost: 8080/halo? Name = shuqi di browser Anda untuk melihat hasil berikut
Lihat output log dari konsol
2018-03-25 16: 24: 32.752 Info 4987 --- [CTASKEXECUTOR-1] com.shuqi.consumer.helloconsumer: Diterima Pesan: Pesan: Halo Shuqi
Ini berarti bahwa pesan telah diterima dan diproses oleh konsumen. Anda bisa bermain dengannya.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.