消息隊列_RabbitMQ介紹&安裝

消息隊列概述

    不管是現在還是之前,你肯定有過排隊買票的經歷。在售票窗口兩邊豎起圍擋,中間留有一人寬的空隙,每個人只能從這個圍擋形成的通道到達售票窗口,起到強制排隊的效果。試想如果沒有這個圍擋,在高峯期一羣人蜂擁到窗口是什麼效果?說不定把窗口擠爆了,最後你爭我搶都買不着票。
    互聯中的很多技術都是對現實世界的抽象,爲了應對類似集中訪問服務器的場景(比如商品秒殺、搶紅包等),使用了消息隊列機制。將這些洪水般的請求放到一個隊列中,服務器中的“消費者”不慌不忙地從隊列中一個一個取出消息進行處理,起到消峯的作用。

消息隊列的作用

  1. 消峯
        不需要將每一次請求都進行全流程的處理(業務處理、數據庫存取),可以先將它們放到隊列中等待,這個隊列一般放置在內存,存取速度是非常快的。比如秒殺,可能只要1%的真正秒殺到了商品,而其他沒有秒殺成功的人就不需要進行後續的業務流程了,總體上減輕了服務器的壓力(入口壓力還是存在的)。
  2. 解耦
        可以對隊列中的消息進行異步地處理。生產端(往隊列中放數據)和消費端(從隊列中取數據)不需要相互依賴,互相之間不需要等待對方的響應。

RabbitMQ簡介

    說了這麼多概念和理論,RabbitMQ就是這個真正“幹活”的。RabbitMQ是一套開源(MPL)的消息隊列服務軟件。官網地址:https://www.rabbitmq.com/
     在這裏插入圖片描述
    RabbitMQ是輕量級的,很容易在本地和雲中部署。它支持多種消息傳遞協議,可以部署在分佈式環境中,以滿足高規模、高可用性的需求。
    提供了多種工作模式(五種主要工作模式後面會介紹到),可以應對多種應用場景。

RabbitMQ安裝

以CenOS7爲例,安裝RabbitMQ3.8.5版本。

1.RabbitMQ3.8.5需要erlang(21.x版本)的支持。
在這裏插入圖片描述
在這裏有對erlang安裝的詳細介紹:https://packagecloud.io/rabbitmq/erlang
安裝之前,通過這個腳本進行環境配置,以幫你選擇合適的版本:在這裏插入圖片描述

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.deb.sh | sudo bash

執行腳本之後,就可以通過yum方式安裝erlang了:

yum install erlang

2.socat安裝
RabbitMQ還需要socat的依賴:
在這裏插入圖片描述

yum install socat

3.RabbitMQ安裝準備工作

導入key:
在這裏插入圖片描述

rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
rpm --import https://packagecloud.io/gpg.key

下載安裝包:
在這裏插入圖片描述

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm

執行安裝:

rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm

看到如下顯示,代表安裝成功:
在這裏插入圖片描述

支持通過瀏覽器對rabbitmq進行遠程管理:

rabbitmq-plugins enable rabbitmq_management

啓動RabbitMQ服務:

systemctl start rabbitmq-server

在瀏覽器訪問:

http://主機IP:15672

在這裏插入圖片描述
但是此時還不能直接登錄,否則會提示:User can only log in via localhost.

還需要以下配置:

添加用戶:admin 123456分別代表添加用戶的用戶名密碼:

rabbitmqctl add_user admin 123456

設置剛纔添加的admin用戶爲管理員:

abbitmqctl set_user_tags admin administrator

如下圖:
在這裏插入圖片描述

設置訪問權限:

rabbitmqctl set_permissions -p / admin "." "." ".*"

如下圖:
在這裏插入圖片描述
重啓服務:

systemctl restart rabbitmq-server

最後大功告成:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章