原文地址:https://www.jianshu.com/p/e186a7fce8cc
在學東西之前,我們先有一個方法論,知道如何學習。學習一個東西一般都遵循以下幾個環節:
- xxx是什麼,誕生的原因,能解決什麼問題。
- 如何安裝,如何使用(快起啟動一個demo)。
- 涉及到的一些基礎概念介紹和基礎入門使用。
- 中階、高階的功能特性使用。
- 高可用部署方案。
- 原理的深入理解。
這篇文章主要處於第一、二環節,讓新手更好得入門。
1、rabbitmq是什麼
rabbitmq 是目前非常熱門的一款訊息中介軟體。Rabbit 這樣名字,是因為兔子行動非常迅速且繁殖起來非常瘋狂, RabbitMQ 的開創者認為以此命名這個分散式軟體再合適不過了。
RabbitMQ 是採用 Erlang 語言實現 AMQP (Advanced Message Queuing Protocol,高階訊息佇列協議)的訊息中介軟體,它最初起源於金融系統,所以rabbitmq的特點是可靠性傳輸,效能在可靠性後面
2、為什麼要使用mq,為什麼要選rabbitmq
為什麼要使用mq?
mq一般有兩種模式
一種是點對點模式:主要是為了削峰和非同步。
另一種是廣播模式:主要是為了業務之間的解耦。
簡單說就是業務有需要對流量削峰的場景,有需要對業務解耦場景。
為什麼要選rabbitmq?
rabbitmq的特點如下:
1、可靠性: RabbitMQ是為了金融系統而生, 所以特地使用一些機制來保證可靠性,如持久化、傳輸確認及釋出確認等。
2、靈活的路由器:4種路由器
3、擴充套件性:多個 rabbitmq 節點可以組成個叢集,也可以根據實際業務情況動態地擴充套件叢集中節點。
4、高可用:擁有映象佇列防止容災訊息丟失。
讓我們使用mq產品做重要的業務處理(例如金額、訂單)的時候,我們最基本的述求是
1、可靠穩定,訊息不丟失。
2、有叢集容災方案。
3、靈活的功能特性。
4、效能在可靠的基礎上
rabbitmq都能完美勝任。
4、rabbitmq的安裝
這裡只介紹docker安裝方式
docker run -d --name myrabbit1 -p 15672:15672 -p 5672:5672 rabbitmq:3.6.15-management
安裝之後訪問 localhost:15672
(localhost改伺服器ip)見到如下介面代表安裝成功。
使用預設賬號guest/guest登入
管理臺的介面後續再一個一個地方詳細講解。
4、快速使用的demo
這裡以springboot為例子展示如何快速使用rabbitmq
4.1 新建springboot工程同時增加配置
spring.rabbitmq.host=localhost
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
4.2 引入ampq的springboot-start依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
4.3 新建配置檔案,初始化佇列
@Configuration
public class RabbitMqConfig {
@Bean
public Queue demo(){
Queue demo = new Queue("demo");
return demo;
}
}
4.4 新建消費者、生產者。
@RestController
@RequestMapping
public class Controller {
@Autowired
private RabbitTemplate rabbitTemplate;
@GetMapping("sendMq")
public String sendMq(String msg){
rabbitTemplate.convertAndSend("demo",msg);
return msg;
}
}
@Component
public class DemoLister {
@RabbitListener(queues = "demo")
public void Lister(Message message){
byte[] body = message.getBody();
System.out.println("接受到的訊息體:"+new String(body));
}
}
4.5 傳送訊息檢視效果
執行命令curl localhost:8080/sendMq?msg=abc
檢視效果
5、最後
git clone -b teacher-1 https://gitee.com/guoeryyj/rabbitmq-teacher.git
下載試例程式碼x