SpringCloud分散式微服務b2b2c電子商務(十三)Springboot整合RabbitMQ
這篇文章帶你瞭解怎麼整合RabbitMQ伺服器,並且透過它怎麼去傳送和接收訊息。我將構建一個springboot工程,透過
RabbitTemplate去透過MessageListenerAdapter去訂閱一個POJO型別的訊息。
準備工作
15min
IDEA
maven 3.0
在開始構建專案之前,機器需要安裝rabbitmq,你可以去官網下載, ,如果
你是用的Mac(程式設計師都應該用mac吧),你可以這樣下載:
brew install rabbitmq
安裝完成後開啟伺服器:
rabbitmq-server
開啟伺服器成功,你可以看到以下資訊:
brew install rabbitmq 安裝完成後開啟伺服器: rabbitmq-server 開啟伺服器成功,你可以看到以下資訊:
構建工程
構架一個SpringBoot工程,其pom檔案依賴加上spring-boot-starter-amqp的起步依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
建立訊息接收者
在任何的訊息佇列程式中,你需要建立一個訊息接收者,用於響應傳送的訊息。
@Component public class Receiver { private CountDownLatch latch = new CountDownLatch(1); public void receiveMessage(String message) { System.out.println("Received <" + message + ">"); latch.countDown(); } public CountDownLatch getLatch() { return latch; } }
訊息接收者是一個簡單的POJO類,它定義了一個方法去接收訊息,當你註冊它去接收訊息,你可以給它取任何的名字。瞭解springcloud架構可以加求求:三五三六二四七二五九。其中,它有CountDownLatch這樣的一個類,它是用於告訴傳送者訊息已經收到了,你不需要在應用程式中具體實現它,只需要latch.countDown()就行了。
建立訊息監聽,併傳送一條訊息
在spring程式中,RabbitTemplate提供了傳送訊息和接收訊息的所有方法。你只需簡單的配置下就行了:
需要一個訊息監聽容器
宣告一個quene,一個exchange,並且繫結它們
一個元件去傳送訊息
程式碼清單如下:
package com.forezp; import com.forezp.message.Receiver; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.TopicExchange; import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class SpringbootRabbitmqApplication { final static String queueName = "spring-boot"; @Bean Queue queue() { return new Queue(queueName, false); } @Bean TopicExchange exchange() { return new TopicExchange("spring-boot-exchange"); } @Bean Binding binding(Queue queue, TopicExchange exchange) { return BindingBuilder.bind(queue).to(exchange).with(queueName); } @Bean SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setQueueNames(queueName); container.setMessageListener(listenerAdapter); return container; } @Bean MessageListenerAdapter listenerAdapter(Receiver receiver) { return new MessageListenerAdapter(receiver, "receiveMessage"); } public static void main(String[] args) { SpringApplication.run(SpringbootRabbitmqApplication.class, args); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2671454/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringCloud分散式微服務b2b2c電子商務-SpringBoot 整合JPA(四)GCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務(五)springboot整合 beatlsqlGCCloud分散式微服務Spring BootTLSSQL
- Springcloud分散式微服務b2b2c電子商務一整合Hystrix(二)SpringGCCloud分散式微服務
- 電子商務Java微服務 SpringBoot整合SpringSecurityJava微服務Spring BootGse
- SpringCloud分散式微服務b2b2c電子商務分散式微服務-docker-feign-hystrix(七)SpringGCCloud分散式微服務Docker
- java b2b2c電子商務 springcloud分散式微服務-Session共享JavaSpringGCCloud分散式微服務Session
- (十四)JAVA springboot微服務b2b2c電子商務系統- Spring Cloud構建分散式電子商務平臺JavaSpring Boot微服務Cloud分散式
- SpringCloud分散式微服務b2b2c電子商務-定時任務(Scheduling Tasks)SpringGCCloud分散式微服務
- JAVA b2b2c電子商務SpringCloud分散式微服務spring-security-基本JavaSpringGCCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務-Gateway的基本入門SpringGCCloud分散式微服務Gateway
- SpringCloud分散式微服務b2b2c電子商務docker-feign配置(六)SpringGCCloud分散式微服務Docker
- Java Springboot整合RabbitMQ(六):(RPC)-b2b2c小程式電子商務JavaSpring BootMQRPC
- SpringCloud分散式微服務b2b2c電子商務(一)元件和概念介紹SpringGCCloud分散式微服務元件
- SpringCloud分散式微服務b2b2c電子商務docker-feign-hystrix-ribbon(八)SpringGCCloud分散式微服務Docker
- SpringCloud分散式微服務b2b2c電子商務-hystrix引數詳解(十)SpringGCCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務(十二)在springboot中用redis實現訊息佇列GCCloud分散式微服務Spring BootRedis佇列
- Java Springboot 整合RabbitMQ(四):路由(Routing)-B2B2C小程式電子商務JavaSpring BootMQ路由
- SpringCloud分散式微服務b2b2c電子商務(三)註冊中心叢集篇SpringGCCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務-Spring Boot配置檔案詳解GCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務-docker部署spring cloud專案(十一)SpringGCCloud分散式微服務Docker
- Java b2b2c電子商務 SpringCloud分散式微服務-config的簡單配置shh方式JavaSpringGCCloud分散式微服務
- Springcloud分散式微服務b2b2c電子商務一Spring Cloud常見問題(一)SpringGCCloud分散式微服務
- SpringCloud分散式微服務b2b2c電子商務-Spring Cloud自定義引導屬性源SpringGCCloud分散式微服務
- java版 電子商務Springcloud分散式微服務多使用者商城系統-Springboot專案打包JavaGCCloud分散式微服務Spring Boot
- SpringCloud分散式微服務b2b2c電子商務(二)Eureka(服務註冊和服務發現基礎篇)SpringGCCloud分散式微服務
- JAVA spring cloud boot b2b2c電子商務分散式微服務JavaSpringCloudboot分散式微服務
- JAVA springboot微服務b2b2c電子商務系統-(七)高可用的分散式配置中心(Spring Cloud Config)JavaSpring Boot微服務分散式Cloud
- springcloud +springboot 社交電子商務-定時任務@ScheduledGCCloudSpring Boot
- (三)springcloud微服務分散式雲架構-SpringCloud整合專案簡介SpringGCCloud微服務分散式架構
- SpringCloud+SpringBoot b2b2c 分散式微服務商城電商之直播帶貨模組設計分析GCCloudSpring Boot分散式微服務
- SpringCloud+SpringBoot b2b2c 分散式微服務商城電商之使用者分享收益設計方案GCCloudSpring Boot分散式微服務
- 關於SpringCloud微服務雲架構構建B2B2C電子商務平臺之-(SpringGCCloud微服務架構
- (十二)JAVA springboot微服務b2b2c電子商務系統:使用Spring Cloud Sleuth和Zipkin進行分散式鏈路跟蹤JavaSpring Boot微服務Cloud分散式
- springboot直播帶貨spring cloud分散式微服務b2b2c社交電商Spring BootCloud分散式微服務
- Java Spring boot 整合RabbitMQ(三):(Publish/Subscribe)-B2B2C小程式電子商務JavaSpring BootMQ
- Java Spring Boot 整合RabbitMQ(一):Hello World -B2B2C小程式電子商務JavaSpring BootMQ
- SpringCloud+SpringBoot b2b2c 分散式微服務商城電商之短影片帶貨模組設計分析GCCloudSpring Boot分散式微服務
- SpringCloud+SpringBoot b2b2c 分散式微服務商城電商之VR全景去逛街模組設計分析GCCloudSpring Boot分散式微服務VR