rabbitMq 是什么?
專業(yè)從事成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,高端網(wǎng)站制作設(shè)計,小程序制作,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團隊竭力真誠服務(wù),采用H5技術(shù)+CSS3前端渲染技術(shù),響應式網(wǎng)站設(shè)計,讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的,而群集和故障轉(zhuǎn)移是構(gòu)建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊的客戶端庫。
rabbitMq 可以做什么?
消息系統(tǒng)允許軟件、應用相互連接和擴展.這些應用可以相互鏈接起來組成一個更大的應用,或者將用戶設(shè)備和數(shù)據(jù)進行連接.消息系統(tǒng)通過將消息的發(fā)送和接收分離來實現(xiàn)應用程序的異步和解偶.
或許你正在考慮進行數(shù)據(jù)投遞,非阻塞操作或推送通知?;蛟S你想要實現(xiàn)發(fā)布/訂閱,異步處理,或者工作隊列。所有這些都可以通過消息系統(tǒng)實現(xiàn)。
RabbitMQ是一個消息代理 - 一個消息系統(tǒng)的媒介。它可以為你的應用提供一個通用的消息發(fā)送和接收平臺,并且保證消息在傳輸過程中的安全。
如何使用:
spring boot 使用消息隊列
pom 引入依賴
org.springframework.boot
spring-boot-starter-amqp
org.springframework.boot
spring-boot-starter-web
application.yml
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
配置queue
@Configuration
public class RabbitConfig {
//queue
@Bean
public Queue helloQueue() {
return new Queue("hello");
}
@Bean
public Queue topicMessage() {
return new Queue("topic.message");
}
@Bean
public Queue fanoutQueue() {
return new Queue("fanout.A");
}
//exchange
@Bean
TopicExchange exchange() {
return new TopicExchange("exchange");
}
@Bean
FanoutExchange fanoutExchange() {
return new FanoutExchange("fanoutExchange");
}
//bind
//綁定單個topicExchange
@Bean
Binding bindingExchangeMessage(Queue topicMessage, TopicExchange exchange) {
return BindingBuilder.bind(topicMessage).to(exchange).with("topic.message");
}
//綁定多個topicExchange
@Bean
Binding bindingExchangeMessages(Queue topicMessage, TopicExchange exchange) {
return BindingBuilder.bind(topicMessage).to(exchange).with("topic.#");
}
//綁定單個 fanoutExchange
@Bean
Binding bindingFanoutExchange(Queue fanoutQueue ,FanoutExchange fanoutExchange) {
return BindingBuilder.bind(fanoutQueue).to(fanoutExchange);
}
}
3.配置消費者
@Component
@RabbitListener(queues= {"hello"})
public class HelloReceive {
@RabbitHandler
public void helloProcess(String message){
System.out.println(message);
}
}
配置生生產(chǎn)者
@Component
public class HelloSender {
@Autowired
AmqpTemplate amqpTemplate;
public void sendHello(String message){
amqpTemplate.convertAndSend("hello",message);
}
}
5 .測試接口
@RestController
@RequestMapping("/rabbit")
public class RabbitController {
@Autowired
HelloSender helloSender;
@RequestMapping("/hello")
public Object helloRabbit(String message){
helloSender.sendHello(message);
return "success";
}
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。