Rabbitmq概況及結構簡述

2020-08-07 20:20:37

1.概述

在某種業務場景,如商品秒殺時,會出現瞬間高併發,讀寫高併發。其中讀的高併發不是瞬時的,它持續存在,寫的高併發是瞬時的。讀寫同時存在,就會出現衝突,高併發瞬時的超過系統處理上限。這種情況就需要引入訊息佇列來解決。

2.訊息佇列

2.1 佇列:queue可以實現讓其中的內容執行排隊處理機制 機製

2.2 訊息:在佇列中存放的數據

訊息佇列主要處理的是端到端的通訊(一端用戶端,一端伺服器端,終端用戶端)

2.3 背景

早期的訊息佇列,就是用來解決通訊強耦合的。後來隨着訊息佇列的使用,還可以處理高併發的快取-----消峯

訊息佇列的作用:

  • 通訊解耦
  • 消峯(秒殺的需求處理邏輯)

3. Rabbitmq

目前最受歡迎的開源訊息代理中介軟體之一,企業級別的訊息代理軟體.類似產品rocketMQ,kafka(收集流快取).

企業級別,常見的一種開源訊息中介軟體.實現了sun公司定義的AMQP高階訊息佇列協定.

AMQP: advanced message queue protocal. 一套介面,實現介面的訊息佇列可以做到效能較高

3.1結構

用戶端:能連線上rabbitmq的所有終端(程式碼語言.軟體程式),都叫做rabbitmq的用戶端. 

  • 生產者:訊息發送端 
  • 消費者:接收訊息端 
  • 無角色:唯一功能定義rabbitmq元件 

伺服器端:rabbitmq啓動的訊息代理伺服器

結構: 

  • 連線元件 
  • 交換機元件 
  • 佇列元件 

粗粒度連線結構

細粒度核心元件

 連線:用戶端可以獲取的連線通道,通過連線通道纔可以和伺服器端進行訊息的邏輯處理的溝通,發送訊息,監聽消費,宣告元件 

  • 長連線:基於TCP/ip封裝的,建立和銷燬都佔用大量資源,不易頻繁建立銷燬. 
  • 短連線:基於長連線建立的短連線,可以頻繁建立銷燬,速度很快,適合用來通訊管理. 

交換機:

  • exchange,在用戶端使用rabbitmq時很有可能會通過一次訊息傳遞併發發送到多個後端佇列中,對於用戶端併發能力就有穩定的高效能的要求.如果這種併發發送訊息交給用戶端,由於可能的語言不同,效能不同,併發不同,導致rabbitmq技術使用不穩定.引入交換機,只允許生產端發送訊息時交給交換機.由交換機來處理後續發送佇列併發邏輯.exchange是有erlang編寫的.

佇列元件:queue

真正儲存訊息物件的容器.一個rabbitmq中可以有多個佇列,但是每個佇列必須系結一個交換機使用

4.執行rabbitmq登陸web控制檯

4.1啓動rabbitmq

登陸到雲注機執行啓動命令

[root@10-9-118-11 ~]# service rabbitmq-server start

4.2登陸控制檯

使用rabbitmq啓動的伺服器ip地址,使用15672埠號,使用 guest/guest使用者名稱密碼登陸