java架構之路-(MQ專題)RabbitMQ安裝和基本使用

RabbitMQ安裝java

  我這裏安裝是使用阿里雲的CentOS7.5來安裝的,使用CentOS版本低於7的可能會報錯。c++

1.安裝rabbitmq所須要的依賴包vim

輸入$ yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc- c++ kernel-devel m4 ncurses-devel tk tc xzcentos

 2.下載安裝包 瀏覽器

$ wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm服務器

$ wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm網絡

$ wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpmapp

 

 3.安裝服務命令 oop

#第一步:安裝erlang語言環境ui

$ rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

#第二步:安裝socat加解密軟件

$ rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

#第三步:最後安裝rabbitmq

$ rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

  

4.修改配置文件

#第一步:查找rabbit.app,並編輯改文件

 修改:loopback_users 中的 <<"guest">>,只保留guest(不修改只能經過localhost訪問) 

 #第二步,修改rabbitmq-env.conf文件

vim /etc/rabbitmq/rabbitmq-env.conf 

添加NODENAME=rabbit 

5.安裝插件,保證瀏覽器能夠訪問

rabbitmq-plugins enable rabbitmq_management 

6.啓動服務

rabbitmq-server start &

rabbitmqctl start_app

 打開瀏覽器,輸入咱們的地址加端口15672,就能夠看到咱們的頁面了,帳號密碼都是guest,登陸進來是這樣的。

 

  說了這麼多,還沒說這個玩意是作什麼的呢~!我第一次接觸這個我也懵,徹底不懂得是作什麼的,咱們先來看一下他能作什麼吧。

  RabbitMQ(暫不說實際場景,後面說場景,如今說場景怕本身給本身說懵圈了)主要是傳遞消息,就是什麼意思呢,看個圖。

  簡單來講就是這樣的,經過咱們的RabbitMQ將咱們的數據發送到其它的服務器上去,讓服務器獲得咱們的消息,有人會問爲何不直接傳遞,也能夠直接傳遞,可是服務器達到必定數量,你是維護起來成本很高的,並且還須要可靠性的投遞呢?代碼實現起來是複雜的。

  咱們再來打開黑色的盒子看一下里面的東西。

咱們來講幾個名詞,有圖了更容易理解和記憶

1:server :又稱爲broker,接受客戶端鏈接,實現amqp實體服務

2:exchange 交換機: 消息直接投遞到交換機上,而後交換機根據消息的路由key 來路由到對應綁定的隊列上

3:baingding: 綁定 exchange 與queue的虛擬鏈接,bingding中能夠包含route_key

4:route_key 路由key ,他的做用是在交換機上經過route_key來把消息路由到哪一個隊列上

5:queue:隊列,用於來保存消息的載體,有消費者監聽,而後消費消息 

  就是咱們的數據服務A經過網絡通道,到達exchange交換機,經過路由route_key來把消息發送到哪一個隊列上,提供給咱們的下游服務使用,左面的叫上游服務,右面的叫下游服務。

交換機exchange

  這裏還得繼續說點枯燥的理論,交換機分爲三種,直接交換機,扇形交換機和咱們的Topic交換機,也叫作話題交換機。來舉三個栗子。

直接交換機:

就是說,攜帶咱們的routing Key經過咱們的路由匹配到咱們的routing Key就能到達咱們的的Queue隊列下,接收到咱們發送過來的消息。

扇形交換機

   經過咱們的交換機,只要訂閱了咱們的交換機Exchange,就能夠收到咱們的消息。

Topic交換機

  須要匹配咱們的routing Key,這裏的匹配模式有兩種,*和#,*表示值匹配一層,一層就是..之間就叫作一層,好比啊,top.xiaocai.java,這時咱們匹配top.xiaocai.*便可匹配到,而咱們匹配top.*則不可匹配。再就是咱們的#是全匹配,仍是top.xiaocai.java的例子,這時咱們匹配top.xiaocai.#便可匹配到,而咱們匹配top.#也可匹配到。咱們來看一個圖

 就是一個匹配的規則,其實不難的。

 命令行

   咱們再來看幾個命令行的使用

查看用戶列表rabbitmqctl list_users,便可獲得咱們的用戶列表了,前面是用戶名,括號內的是用戶對應的角色。

 輸入rabbitmqctl add_user xiaocaijava 123456,添加咱們的新用戶,前面xiaocaijava是用戶名,123456是密碼。

 設置rabbitmq用戶的角色 rabbitmqctl set_user_tags xiaocaijava administrator 

 

 輸入rabbitmqctl delete_user xiaocaijava,便可刪除咱們的用戶,注意別把guest用戶刪了,否則會很麻煩。

 後面的我就大概說一下,不是很重要,會用便可。

爲用戶設置權限: rabbitmqctl set_permissions -p <虛擬機> <用戶名> ".*" ".*" ".*" 

列出用戶權限: rabbitmqctl list_user_permissions xiaocai

清除用戶權限 rabbitmqctl clear_permissions -p <虛擬機> <用戶名> 

修改用戶密碼 rabbitmqctl change_password 用戶名 新密碼 

虛擬主機操做

rabbitmqctl add_vhost /cloudmall 增長一個虛擬主機

rabbitmqctl list_vhosts; 查看全部的虛擬主機

rabbitmqctl list_permissions -p /cloudmall查看虛擬主機的權限

rabbitmqctl delete_vhost /cloudmall 刪除虛擬主機 

操做隊列命令

rabbitmqctl list_queues 查詢全部隊列

rabbitmqctl -p vhostpath purge_queue blue 清除隊列消息 

  今天只是簡單瞭解一下咱們的RabbitMQ,後面會詳細的去說RabbitMQ的做用和java相關的使用。

 

最進弄了一個公衆號,小菜技術,歡迎你們的加入

 

相關文章
相關標籤/搜索