天天看點

RabbitMQ安裝解除安裝

入門安裝及解除安裝

01、概述

官網:https://www.rabbitmq.com/

什麼是RabbitMQ,官方給出來這樣的解釋:

RabbitMQ is the most widely deployed open source message broker.

With tens of thousands of users, RabbitMQ is one of the most popular open source message brokers. From T-Mobile to Runtastic, RabbitMQ is used worldwide at small startups and large enterprises.

RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.

RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.

翻譯以後:

RabbitMQ是部署最廣泛的開源消息代理。

RabbitMQ擁有成千上萬的使用者,是最受歡迎的開源消息代理之一。從T-Mobile 到Runtastic,RabbitMQ在全球範圍内的小型初創企業和大型企業中都得到使用。

RabbitMQ輕巧,易于在内部和雲中部署。它支援多種消息傳遞協定。RabbitMQ可以部署在分布式和聯合配置中,以滿足大規模,高可用性的要求。

RabbitMQ可在許多作業系統和雲環境上運作,并為大多數流行語言提供了廣泛的開發人員工具。

簡單概述:

RabbitMQ是一個開源的遵循AMQP協定實作的基于Erlang語言編寫,支援多種用戶端(語言)。用于在分布式系統中存儲消息,轉發消息,具有高可用,高可擴性,易用性等特征。

02、安裝RabbitMQ

1:下載下傳位址:https://www.rabbitmq.com/download.html

2:環境準備:CentOS7.x+ / Erlang

RabbitMQ是采用Erlang語言開發的,是以系統環境必須提供Erlang環境,第一步就是安裝Erlang。

erlang和RabbitMQ版本的按照比較: https://www.rabbitmq.com/which-erlang.html
RabbitMQ安裝解除安裝

03、 Erlang安裝

檢視系統版本号

[[email protected] ~]# lsb_release -aLSB Version:    :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription:    CentOS Linux release 8.3.2011Release:        8.3.2011Codename:       n/a
           

3-1:安裝下載下傳

參考位址:https://www.erlang-solutions.com/downloads/

[[email protected] ~]# mkdir -p /usr/rabbitmq
[[email protected] ~]# cd /usr/
[[email protected] usr]# cd rabbitmq/
[[email protected] rabbitmq]# ls
erlang-22.0.7-1.el7.x86_64.rpm  rabbitmq-server-3.8.6-1.el7.noarch.rpm
[[email protected] rabbitmq]# yum -y install erlang-22.0.7-1.el7.x86_64.rpm
Loaded plugins: fastestmirror
Examining erlang-22.0.7-1.el7.x86_64.rpm: erlang-22.0.7-1.el7.x86_64
Marking erlang-22.0.7-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package erlang.x86_64 0:22.0.7-1.el7 will be installed
--> Finished Dependency Resolution
.............................

           

3-2:安裝成功

erl -v
           
[[email protected] rabbitmq]# erl
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V10.4.4  (abort with ^G)
1> 

           

05、安裝rabbitmq

下載下傳位址:https://www.rabbitmq.com/download.html

RabbitMQ安裝解除安裝

5-1:安裝MQ

yum -y install rabbitmq-server-3.8.6-1.el7.noarch.rpm
           
[[email protected] rabbitmq]# yum -y install rabbitmq-server-3.8.6-1.el7.noarch.rpm
Loaded plugins: fastestmirror
Examining rabbitmq-server-3.8.6-1.el7.noarch.rpm: rabbitmq-server-3.8.6-1.el7.noarch
Marking rabbitmq-server-3.8.6-1.el7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.8.6-1.el7 will be installed
--> Finished Dependency Resolution
 ……………………………………………………………………………………………………………………………………………………
           

5-2:啟動rabbitmq服務

# 啟動服務> systemctl start rabbitmq-server
# 檢視服務狀态> systemctl status rabbitmq-server
# 停止服務> systemctl stop rabbitmq-server
# 開機啟動服務> systemctl enable rabbitmq-server
           
[[email protected] rabbitmq]# systemctl start rabbitmq-server # 啟動服務
[[email protected] rabbitmq]# systemctl status rabbitmq-server #檢視服務狀态active (running)表示成功
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-11-01 23:10:14 CST; 29s ago
 Main PID: 24967 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─24967 /usr/lib64/erlang/erts-12.3.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -...
           ├─24982 erl_child_setup 32768
           ├─25007 /usr/lib64/erlang/erts-12.3.2.1/bin/epmd -daemon
           ├─25027 inet_gethost 4
           └─25028 inet_gethost 4

Nov 01 23:10:10 aoyuehan rabbitmq-server[24967]: ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com
Nov 01 23:10:10 aoyuehan rabbitmq-server[24967]: Doc guides: https://rabbitmq.com/documentation.html
……………………………………………………………………………………………………………………………………………………

[[email protected] rabbitmq]# systemctl enable rabbitmq-server # 開機啟動服務
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service

[[email protected] rabbitmq]# systemctl stop rabbitmq-server # 停止服務
[[email protected] rabbitmq]# systemctl restart rabbitmq-server # 重新開機服務



           

06、RabbitMQ的配置

RabbitMQ預設情況下有一個配置檔案,定義了RabbitMQ的相關配置資訊,預設情況下能夠滿足日常的開發需求。如果需要修改需要,需要自己建立一個配置檔案進行覆寫。

參考官網:

1:https://www.rabbitmq.com/documentation.html

2:https://www.rabbitmq.com/configure.html

3:https://www.rabbitmq.com/configure.html#config-items

4:https://github.com/rabbitmq/rabbitmq-server/blob/add-debug-messages-to-quorum_queue_SUITE/docs/rabbitmq.conf.example

06-1、相關端口

5672:RabbitMQ的通訊端口

25672:RabbitMQ的節點間的CLI通訊端口是

15672:RabbitMQ HTTP_API的端口,管理者使用者才能通路,用于管理RabbitMQ,需要啟動Management插件。

1883,8883:MQTT插件啟動時的端口。

61613、61614:STOMP用戶端插件啟用的時候的端口。

15674、15675:基于webscoket的STOMP端口和MOTT端口

一定要注意:RabbitMQ 在安裝完畢以後,會綁定一些端口,如果你購買的是阿裡雲或者騰訊雲相關的伺服器一定要在安全組中把對應的端口添加到防火牆。

07、解除安裝

1)、删除rabbitmq:

--解除安裝
--停止服務
rabbitmqctl app_stop
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarch
           

2)删除erlang:

yum list | grep erlang
yum remove erlang-*.x86_64
yum remove erlang.x86_64
           

(3) 删除lib檔案:

[[email protected] ~]# rm -rf /usr/lib64/erlang 
[[email protected] ~]# rm -rf /var/lib/rabbitmq
           

08、相關安裝包

參考連結:阿裡雲伺服器安裝RabbitMQ(親測有效)_Victor_study的部落格-CSDN部落格_雲伺服器安裝rabbitmq

雲伺服器ECS部署和解除安裝RabbitMQ - Jerry不識人間煙火 - 部落格園 (cnblogs.com)

RabbitMQWeb管理界面及授權操作

01、RabbitMQ管理界面

01-1:預設情況下,rabbitmq是沒有安裝web端的用戶端插件,需要安裝才可以生效

# rabbitmq-plugins enable rabbitmq_management

[[email protected] rabbitmq]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node [email protected]:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to [email protected]...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

set 3 plugins.
Offline change; changes will take effect at broker restart.
           
說明:rabbitmq有一個預設賬号和密碼是:

guest

預設情況隻能在localhost本機下通路,是以需要添加一個遠端登入的使用者。
一定要記住,在對應伺服器(阿裡雲,騰訊雲等)的安全組中開放

15672

的端口。

01-2:在浏覽器通路

http://ip:15672/ 如下:

RabbitMQ安裝解除安裝

02、授權賬号和密碼

2-1:新增使用者

# rabbitmqctl add_user admin 123456
[[email protected] rabbitmq]# rabbitmqctl add_user admin admin
Adding user "admin" ...
           

2-2:設定使用者配置設定操作權限

# rabbitmqctl set_user_tags admin administrator
[[email protected] rabbitmq]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...

           

使用者級别:

  • 1、administrator 可以登入控制台、檢視所有資訊、可以對rabbitmq進行管理
  • 2、monitoring 監控者 登入控制台,檢視所有資訊
  • 3、policymaker 政策制定者 登入控制台,指定政策
  • 4、managment 普通管理者 登入控制台

2-3:為使用者添加資源權限

# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
[[email protected] rabbitmq]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...

           

2-4:檢視使用者清單

[[email protected] rabbitmq]# rabbitmqctl list_users
Listing users ...
user	tags
admin	[administrator]
guest	[administrator] # 隻限于本機通路

           

小結:

rabbitmqctl add_user 賬号 密碼 # 添加使用者及密碼
rabbitmqctl set_user_tags 賬号 administrator # 設定使用者權限為administrator
rabbitmqctl change_password Username Newpassword # 修改密碼
rabbitmqctl delete_user Username # 删除使用者
rabbitmqctl list_users # 檢視使用者清單
rabbitmqctl set_permissions -p / 使用者名 ".*" ".*" ".*" # 為使用者設定administrator角色
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
           

RabbitMQ之Docker安裝

01、Docker安裝RabbitMQ

1-1、虛拟化容器技術—Docker的安裝

基于 CentOS 7 安裝
  1. 官網安裝參考手冊:https://docs.docker.com/install/linux/docker-ce/centos/
  2. 确定你是CentOS7及以上版本
    [[email protected] Desktop]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)
               
  3. yum安裝gcc相關(需要確定 虛拟機可以上外網 )
    yum -y install gcc
    yum -y install gcc-c++
               
  4. 解除安裝舊版本
    yum -y remove docker docker-common docker-selinux docker-engine
    # 官網版本
    yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine
               
  5. 安裝需要的軟體包
    yum install -y yum-utils device-mapper-persistent-data lvm2
               
  6. 設定stable鏡像倉庫
    # 錯誤
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    ## 報錯
    [Errno 14] curl#35 - TCP connection reset by peer
    [Errno 12] curl#35 - Timeout
    
    # 正确推薦使用國内的
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
               
  7. 更新yum軟體包索引
    yum makecache fast
               
  8. 安裝Docker CE
    yum -y install docker-ce docker-ce-cli containerd.io
               
  9. 啟動docker
    systemctl start docker
               
  10. 測試
    docker version
    
    docker run hello-world
    
    # docker images
    [[email protected] rabbitmq]# docker images
    REPOSITORY    TAG          IMAGE ID       CREATED         SIZE
    hello-world   latest       feb5d9fea6a5   13 months ago   13.3kB
    
               

1-2、docker的相關指令

# 啟動docker:systemctl start docker
# 停止docker:systemctl stop docker
# 重新開機docker:systemctl restart docker
# 檢視docker狀态:systemctl status docker
# 開機啟動:  systemctl enable dockersystemctl unenable docker
# 檢視docker概要資訊docker info
# 檢視docker幫助文檔docker --help
           

1-3、安裝rabbitmq

參考網站:

1:https://www.rabbitmq.com/download.html

2:https://registry.hub.docker.com/_/rabbitmq/

1-4、擷取rabbit鏡像:

# 可以不用先拉取
docker pull rabbitmq:management
           

1-5、建立并運作容器

# 不建議,這樣需要去docker中配置設定權限
docker run -di --name=myrabbit -p 15672:15672 rabbitmq:management
           

—hostname:指定容器主機名稱

—name:指定容器名稱

-p:将mq端口号映射到本地

或者運作時設定使用者和密碼

# 拉取鏡像,不存在會在遠端倉庫下載下傳
# 會自動配置設定權限
# 建立使用者為admin 密碼為123456 也會自動開啟一些端口(前提阿裡雲端口要加入安全組)
[[email protected] rabbitmq]# docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

Unable to find image 'rabbitmq:management' locally
management: Pulling from library/rabbitmq
eaead16dc43b: Pull complete 
d5e775568c00: Pull complete 
9300f4c930ff: Pull complete 
c408cd7bb376: Pull complete 
.....................................
           

檢視鏡像

[[email protected] rabbitmq]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                      PORTS     NAMES
d7a379664209   rabbitmq:management   "docker-entrypoint.s…"   About a minute ago   Created                               myrabbit
829448011ef0   hello-world           "/hello"                 16 minutes ago       Exited (0) 16 minutes ago             busy_pare

[[email protected] rabbitmq]# docker images
REPOSITORY    TAG          IMAGE ID       CREATED         SIZE
rabbitmq      management   031f07386589   8 days ago      263MB
hello-world   latest       feb5d9fea6a5   13 months ago   13.3kB

           

從docker中開啟rabbitmq

[[email protected] rabbitmq]# docker start d7a379664209
Error response from daemon: driver failed programming external connectivity on endpoint myrabbit (7125692ae74c7e40e46f76d87364d4a39d5b1c9bcd134aa38e79fb8adb30efb5): Error starting userland proxy: listen tcp4 0.0.0.0:25672: bind: address already in use
Error: failed to start containers: d7a379664209 # 由于之前手動安裝了rabbitmq

# 檢視rabbitmq狀态
[[email protected] rabbitmq]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-11-03 00:18:11 CST; 45min ago
 Main PID: 18469 (beam.smp)
   Status: "Initialized"
    Tasks: 84
   Memory: 3.6M
   CGroup: /system.slice/rabbi
   ...................................
 
 # 停掉之前的rabbitmq
 [[email protected] rabbitmq]# systemctl stop rabbitmq-server
[[email protected] rabbitmq]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS                      PORTS     NAMES
d7a379664209   rabbitmq:management   "docker-entrypoint.s…"   5 minutes ago    Created                               myrabbit
829448011ef0   hello-world           "/hello"                 20 minutes ago   Exited (0) 20 minutes ago             busy_pare
[[email protected] rabbitmq]# docker start d7a379664209 在容器中開啟rabbitmq
d7a379664209

[[email protected] rabbitmq]# docker stop d7a379664209 # 在容器中停掉rabbitmq
d7a379664209

           

檢視日志

docker logs -f myrabbit
           

1-6、容器運作正常

使用

http://你的IP位址:15672

通路rabbit控制台

02、額外Linux相關排查指令

> more xxx.log  檢視日記資訊
> netstat -naop | grep 5672 檢視端口是否被占用
> ps -ef | grep 5672  檢視程序
> systemctl stop 服務
           

繼續閱讀