rabbitmq學習(一)

RabbitMQ是目前非常熱門的一款消息中間件,具有高可靠、易拓展、高可用及豐富的功能

1.什麼是消息中間件

消息是指在應用間傳送的數據。包含文本字符串、JSON、內嵌對象

消息隊列中間件(消息中間件或消息隊列)是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通信來進行分佈式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分佈式下擴展進程間的通信

兩種傳遞模式:點對點(P2P,Point-to-Point)模式、發佈訂閱模式(Pub/Sub)

點對點模式基於隊列,消息生產者發送消息到隊列,消息消費者從隊列中接受消息

發佈訂閱模式模式定義瞭如何向一個內容節點發布和訂閱消息,這個內容節點稱爲主題,消息發佈者將消息發佈到某個主題,而消息訂閱者則從主題中訂閱消息,發佈訂閱模式在消息的一對多廣播時採用

2.消息中間件的作用

解耦:

冗餘(存儲):有些情況下,處理數據的過程會失敗,消息中間件可以把數據進行持久化直到它們已經被處理,通過這一方式規避了數據丟失風險

擴展性:消息中間件解耦了應用的處理過程,所以提高消息入隊和處理的效率是很容易的,只要另外增加處理過程即可,不需要改變代碼,也不需要調節參數

削峯:在訪問量劇增的情況下,應用仍然需要繼續發揮,但是這樣的突發流量並不常見。如果以能處理這類峯值爲標準而投入資源,無疑是巨大的浪費。

可恢復性:消息中間件降低了進程間的耦合度,所以即使一個處理消息的進程掛掉,加入消息中間件中的消息仍然可以在系統恢復後進行處理

順序保證性:在大多數使用場景下,數據處理的順序很重要,大部分消息中間件支持一定程度上的順序性

緩衝:在任何重要的系統中,都會存在需要不同處理時間的元素。消息中間件通過一個緩衝層來幫助任務最高效率地執行,寫入消息中間件的處理會儘可能快速。該緩衝層有助於控制和優化數據流經過系統的速度

異步通信:在很多時候應用不想也不需要立即處理消息。消息中間件提供了異步處理機制,允許應用把一些消息放入消息中間件中,但不立即處理它,在之後需要的時候再慢慢處理

3.rabbitmq的起源

rabbitmq是採用erlang語言實現AMQP(Advanced Message Queuing Protocol)的消息中間件。

4.rabbitmq的安裝

系統環境:

CentOS 7.5

erlang:R16B03-1

rabbitmq:rabbitmq-server 3.6.8

安裝所需各種類庫:

爲了避免安裝出問題先把各種類庫安裝

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel

erlang安裝:

rabbitmq依賴erlang,需要安裝erlang,爲了方便利用yum命令安裝即可:yum install erlang

輸入erl驗證是否安裝成功,進入Erlang後可以使用如下命令退出Erlang:q().

rabbitmq安裝:

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_8/rabbitmq-server-generic-unix-3.6.8.tar.xz
tar xvf rabbitmq-server-generic-unix-3.6.8.tar.xz -C /opt
mv rabbitmq_server-3.6.8 rabbitmq

修改/etc/profile文件,添加下面的環境變量:

erport PATH=$PATH:/opt/rabbitmq/sbin

erport RABBITMQ_HOME=/opt/rabbitmq

5.rabbitmq的運行

啓動:

rabbitmq-server [-detached]

默認情況下,訪問rabbitmq服務的用戶名和密碼是guest和guest,且無法遠程訪問,需添加新用戶

添加新用戶:

添加用戶名爲root密碼爲root的用戶

rabitmqctl add_user root root

爲root用戶設置所有權限:

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

設置root用戶爲管理員角色

rabbitmqctl set_user_tags root administrator

開啓web管理界面:

rabbitmq-plugins enable rabbitmq_management

瀏覽器輸入 http://你的遠程服務器IP:15672/ 用root登錄即可

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