成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Centos7下安裝部署RabbitMQ,看這篇就夠了

開源
本文我們介紹如何在CentOS上安裝當前最新版的RabbitMQ:v3.8.1,以及如何使用Docker來安裝RabbitMQ。

前言

RabbitMQ是一個開源的強大的企業消息系統,支持主流的操作系統,支持多種開發語言。我們項目中使用RabbitMQ作為消息隊列,解耦業務,構建高可靠的消息隊列系統。RabbitMQ可以用在訂單系統、日志系統、數據收集等常見場景中。

本文我們介紹如何在CentOS上安裝當前最新版的RabbitMQ:v3.8.1,以及如何使用Docker來安裝RabbitMQ。

安裝RabbitMQ

安裝 RabbitMQ 之前要安裝 Erlang,需要先到RabbitMQ官網看下版本對應關系。

當前最新版rabbitmq-server是 3.8.14,最新版Erlang是 23.x。我們可以分別在Github和RabbitMQ官網下載對應的版本的rpm包。

下載 Erlang 的 rpm 包

訪問 Erlang 的 Github,如下:https://github.com/rabbitmq/erlang-rpm/releases。

# 下載地址
https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.2/erlang-23.3.2-1.el7.x86_64.rpm

下載 RabbitMQ 的 rpm 包

訪問 RabbitMQ 的官網,如下:https://www.rabbitmq.com/install-rpm.html#downloads。

# 下載地址
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm

下載好rpm包后,接下來我們使用rpm進行安裝。

使用 rpm 安裝

首先安裝依賴socat,安裝Erlang時需要這個。

yum install -y socat

接下來安裝Erlang和RabbitMQ。

rpm -ivh erlang-23.3.2-1.el7.x86_64.rpm
rpm -ivh rabbitmq-server-3.8.14-1.el7.noarch.rpm

執行上述兩行命令后,即完成了Erlang和RabbitMQ的安裝,就這么簡單。

啟動RabbitMQ:

systemctl start rabbitmq-server

設置RabbitMQ開機自啟動:

systemctl enable rabbitmq-server

RabbitMQ其他操作:

#查看啟動后的情況
rabbitmqctl status
#關閉服務
rabbitmqctl stop
#重啟rabbitmq
systemctl restart rabbitmq-server
#服務狀態
systemctl status rabbitmq-server
#查看所有隊列
rabbitmqctl list_queues
# 清除某個隊列的數據
rabbitmqctl purge_queue queueName
# 清除所有隊列數據以及用戶數據、配置數據:慎用,記得要先把MQ 的meta data備份出來,reset后,將meta data導入即可。
rabbitmqctl reset
但是在使用此命令前,要先關閉應用,否則不能清除。關閉應用的命令為:
rabbitmqctl stop_app
執行了這兩條命令后再次啟動此應用。命令為:
rabbitmqctl start_app
再次執行命令:
rabbitmqctl list_queues
#查看所有虛擬主機
rabbitmqctl list_vhosts
#添加用戶:
rabbitmqctl  add_user username password
 
#列出所有用戶:
rabbitmqctl list_users
 
#刪除用戶:
rabbitmqctl  delete_user username
 
#清除用戶權限:
rabbitmqctl  clear_permissions  -p  vhostpath  username
 
#列出用戶權限:
rabbitmqctl  list_user_permissions username
 
#修改密碼:
rabbitmqctl  change_password  username  newpassword
 
#設置用戶權限:
rabbitmqctl  set_permissions  -p  vhostpath  username  ".*"  ".*"  ".*"
 
#創建虛擬主機: 
rabbitmqctl add_vhost vhostpath
 
#列出所以虛擬主機: 
rabbitmqctl list_vhosts
 
#列出虛擬主機上的所有權限: 
rabbitmqctl list_permissions -p vhostpath
 
#刪除虛擬主機: 
rabbitmqctl delete_vhost vhost vhostpath
 
#移除所有數據,要在 rabbitmqctl stop_app 之后使用: 
rabbitmqctl reset
 
#組成集群命令: 
rabbitmqctl join_cluster <clusternode> [--ram]
 
#查看集群狀態: 
rabbitmqctl cluster_status
 
#修改集群節點的存儲形式: 
rabbitmqctl change_cluster_node_type disc | ram
 
#摘除節點:
rabbitmqctl   forget_cluster_node  [--offline]  
 
#修改節點名稱:
rabbitmqctl  rename_cluster_node   oldnode1  newnode1  [oldnode2  newnode2]  [oldnode3  newnode3...]

配置RabbitMQ

1、啟用網頁版后臺管理插件:

rabbitmq-plugins enable rabbitmq_management

執行如下:

2、新建一個用戶名為admin,密碼為admin的管理員,并授予管理(administrator)權限。

rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator

執行如下:

3、設置admin可以使用的虛機權限。

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

執行如下:

4、插件管理:

#插件列表: 
rabbitmq-plugins list 
#啟動插件: 
rabbitmq-plugins enable XXX   (XXX為插件名)
#停用插件: 
rabbitmq-plugins disable XXX

5、打開后臺web管理界面:

http://localhost:15672/, 剛才我們設置了admin用戶,所以可以使用admin登錄,也可以使用默認賬號和密碼都是guest登錄。進入管理界面后可以看到:

使用賬號/密碼:admin / admin 進行登錄,如下:

我們可以在后臺管理用戶、隊列等信息。

6、修改RabbitMQ默認端口

RabbitMQ默認開啟了幾個端口:

  • 4369:erlang發現口
  • 5672:client端通信口,客戶端要連接RabbitMQ服務時要用到
  • 15672:后臺管理界面ui端口,進入管理后臺時訪問url如:http://localhost:15672/
  • 25672:server間內部通信口

有時候在生產環境下,我們出于安全等原因希望修改掉默認的端口號。

我們安裝新版的 RabbitMQ-3.8.x 后,發現找不到它的配置文件,按常理,服務的端口開發都可以在配置文件里配置的。但是事實上RabbitMQ-3.8.1并沒有生成配置文件,需要我們手動添加配置文件。

[root@..]# ls /etc/rabbitmq/rabbitmq.conf
ls: cannot access /etc/rabbitmq/rabbitmq.conf: No such file or directory # 需要手動添加

官方建議配置文件的位置:/etc/rabbitmq/rabbitmq.conf

我們現在要做的是把默認端口5672改成56720,并且允許遠程訪問。把web管理默認端口15672改成56271。只需如下配置:

# vim /etc/rabbitmq/rabbitmq.conf
# AMQP 0-9-1 and 1.0 port,默認5672,允許遠程訪問
listeners.tcp.default = 0.0.0.0:56720
# web管理,默認15672
management.tcp.port = 56721
management.tcp.ip   = 0.0.0.0

執行如下:

保存,并重啟RabbitMQ服務。

systemctl restart rabbitmq-server
systemctl status rabbitmq-server

使用netstat -lntp查看端口監聽情況:

7、其他配置

我們可以到官網地址:https://www.rabbitmq.com/configure.html,了解RabbitMQ的性能優化方面的配置。

使用Docker安裝RabbitMQ

在開發環境中,我們也可以直接使用 Docker 進行安裝更加方便,下面我們繼續使用Docker來安裝一遍。

首先,我們得安裝docker環境。

yum install -y docker

查看docker的版本:

[root@server docker]# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Mon Jun  7 15:36:09 2021
 OS/Arch:         linux/amd64
Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Mon Jun  7 15:36:09 2021
 OS/Arch:         linux/amd64
 Experimental:    false
[root@server docker]#

搜索RabbitMQ鏡像:

[root@ ~]# docker search rabbitmq
NAME                                        DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
rabbitmq                                    RabbitMQ is an open source multi-protocol me…   3703                [OK]                
bitnami/rabbitmq                            Bitnami Docker Image for RabbitMQ               62                                      [OK]
tutum/rabbitmq                              Base docker image to run a RabbitMQ server      22                                      
kbudde/rabbitmq-exporter                    rabbitmq_exporter for prometheus                15                                      [OK]
frodenas/rabbitmq                           A Docker Image for RabbitMQ                     12                                      [OK]
cyrilix/rabbitmq-mqtt                       RabbitMQ MQTT Adapter                           9                                       [OK]
arm32v7/rabbitmq                            RabbitMQ is an open source multi-protocol me…   7

拉取RabbitMQ鏡像:

docker pull docker.io/rabbitmq

然后查看鏡像:

[root@server docker]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
docker.io/rabbitmq   latest              ba647756d55a        3 days ago          221 MB
[root@server docker]#

然后運行容器:

docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -v /data:/var/lib/rabbitmq docker.io/rabbitmq

整理寫一個重啟服務腳本:

[root@server docker_rabbitmq]# cat restart_service.sh 
#!/bin/sh
basedir=`pwd`
datadir=$basedir/data
image=docker.io/rabbitmq
name=rabbitmq
mkdir -p $datadir
# docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -v /data:/var/lib/rabbitmq rabbitmq:3.8.1-management
docker stop $name
docker rm $name
docker run -d --name=$name --restart always -p 5672:5672 -p 15672:15672 -v $datadir:/var/lib/rabbitmq $image
[root@server docker_rabbitmq]#

最后,使用docker ps查看運行的容器。

[root@server docker_rabbitmq]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                                                              NAMES
b959544500f4        docker.io/rabbitmq   "docker-entrypoint..."   2 seconds ago       Up 1 second         4369/tcp, 0.0.0.0:5672->5672/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq

這樣,一個RabbitMQ的docker環境就裝好了。

在Docker 配置RabbitMQ

1、啟用網頁版后臺管理插件:

rabbitmq-plugins enable rabbitmq_management

執行如下:

[root@server docker_rabbitmq]# docker exec -it rabbitmq bash
root@b959544500f4:/# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@b959544500f4:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@b959544500f4...
The following plugins have been enabled:
  rabbitmq_management
started 1 plugins.
root@b959544500f4:/#

此時可以通過瀏覽器訪問管理頁:http://localhost:15672/

可以通過默認的賬號 guest / guest 登錄如下:

2、新建一個用戶名為admin,密碼為admin的管理員,并授予管理(administrator)權限。

rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator

執行如下:

root@b959544500f4:/# rabbitmqctl add_user admin admin
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
root@b959544500f4:/# 
root@b959544500f4:/# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
root@b959544500f4:/#

3、設置admin可以使用的虛機權限。

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

執行如下:

root@b959544500f4:/# rabbitmqctl add_vhost admin
Adding vhost "admin" ...
root@b959544500f4:/# rabbitmqctl set_permissions -p admin  admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "admin" ...
root@b959544500f4:/#

4、插件管理:

#插件列表: 
rabbitmq-plugins list 
#啟動插件: 
rabbitmq-plugins enable XXX   (XXX為插件名)
#停用插件: 
rabbitmq-plugins disable XXX

5、配置路徑說明

rabbit的配置文件目錄:/etc/rabbitmq
rabbit的數據文件目錄:/var/lib/rabbitmq
rabbit的日志文件目錄:/var/log/rabbitmq

如果需要持續化,可以掛在這些路徑:

# 創建掛在路徑
mkdir -p ~/rabbitmq/{etc,lib,var/{lib,log}}
# 啟動容器
docker run -d -p 1883:1883 -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 61613:61613 -p 61614:61614 -v ~/rabbitmq/etc:/etc/rabbitmq -v ~/rabbitmq/lib:/var/lib/rabbitmq -v ~/rabbitmq/log:/var/log/rabbitmq --name rabbit rabbitmq:management

后臺管理的使用

1、用戶角色

前面我們使用命令行創建了一個admin用戶,也可以在頁面上創建,如下:

在這里可以選擇不同的角色來創建用戶。

角色說明:

超級管理員(administrator)

可登陸管理控制臺,可查看所有的信息,并且可以對用戶,策略(policy)進行操作。

監控者(monitoring)

可登陸管理控制臺,同時可以查看rabbitmq節點的相關信息(進程數,內存使用情況,磁盤使用情況等)

策略制定者(policymaker)

可登陸管理控制臺, 同時可以對policy進行管理。但無法查看節點的相關信息(上圖紅框標識的部分)。

普通管理者(management)

僅可登陸管理控制臺,無法看到節點信息,也無法對策略進行管理。

其他

無法登陸管理控制臺,通常就是普通的生產者和消費者。

2、創建 vhost 并授權給用戶

3、開啟 management_agent 插件

下面切換 libai 這個用戶登錄一下,如下:

提示了這個告警:

Stats in management UI are disabled on this node

解決措施:

#進入rabbitmq容器
docker exec -it {rabbitmq容器名稱或者id} /bin/bash
#進入容器后,cd到以下路徑
cd /etc/rabbitmq/conf.d/
#修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
#退出容器
exit
#重啟rabbitmq容器
docker retart {rabbitmq容器id}

下面我們執行如下:

# 進入配置目錄
root@b959544500f4:/# cd /etc/rabbitmq/conf.d/
root@b959544500f4:/etc/rabbitmq/conf.d# ls
10-default-guest-user.conf  management_agent.disable_metrics_collector.conf
root@b959544500f4:/etc/rabbitmq/conf.d# 
# 查看當前的配置
root@b959544500f4:/etc/rabbitmq/conf.d# cat management_agent.disable_metrics_collector.conf
management_agent.disable_metrics_collector = true
# 修改配置
root@b959544500f4:/etc/rabbitmq/conf.d# echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
root@b959544500f4:/etc/rabbitmq/conf.d# 
# 查看修改后的配置
root@b959544500f4:/etc/rabbitmq/conf.d# cat management_agent.disable_metrics_collector.conf 
management_agent.disable_metrics_collector = false
root@b959544500f4:/etc/rabbitmq/conf.d# 
root@b959544500f4:/etc/rabbitmq/conf.d# exit
exit
[root@server docker_rabbitmq]# ls
data  restart_service.sh
# 重啟容器
[root@server docker_rabbitmq]# docker restart rabbitmq
rabbitmq
[root@server docker_rabbitmq]#

配置完畢后,再訪問頁面如下:

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-09-30 07:59:06

zookeeper一致性算法CAP

2019-08-16 09:41:56

UDP協議TCP

2020-12-14 09:26:32

WindowsAD域安裝軟件

2021-05-07 07:52:51

Java并發編程

2022-03-29 08:23:56

項目數據SIEM

2023-09-25 08:32:03

Redis數據結構

2021-09-10 13:06:45

HDFS底層Hadoop

2023-10-04 00:32:01

數據結構Redis

2023-11-07 07:46:02

GatewayKubernetes

2021-07-28 13:29:57

大數據PandasCSV

2024-08-27 11:00:56

單例池緩存bean

2017-03-30 22:41:55

虛擬化操作系統軟件

2023-11-22 07:54:33

Xargs命令Linux

2021-12-13 10:43:45

HashMapJava集合容器

2022-08-26 05:22:21

RabbitMQ架構

2021-10-21 06:52:17

ZooKeeper分布式配置

2023-12-07 09:07:58

2018-09-26 11:02:46

微服務架構組件

2021-04-11 08:30:40

VRAR虛擬現實技術

2022-08-18 20:45:30

HTTP協議數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩高清一区 | 999久久久久久久久 国产欧美在线观看 | 黄色永久免费 | 日韩视频免费在线 | 成人亚洲性情网站www在线观看 | 日本成人在线免费视频 | 国产精品久久久久婷婷二区次 | 自拍偷拍3p | 国产精品.xx视频.xxtv | 精品久久久久久久 | 日韩视频在线一区 | 亚洲h在线观看 | 亚洲精品二区 | 国产精品久久久久久久久久久久午夜片 | 一区二区av| 国色天香综合网 | 久久久成人一区二区免费影院 | 精品欧美乱码久久久久久 | 黄视频网址 | 久久久久久黄 | 国产成人av在线播放 | 先锋资源网 | 精品不卡 | 亚洲高清免费视频 | 亚洲精品一区二三区不卡 | 91精品国产乱码久久久久久久久 | 天天躁日日躁狠狠很躁 | 国产精品久久久久久婷婷天堂 | 91精品国产91久久久久游泳池 | 在线国产一区 | 成人av一区二区亚洲精 | 在线激情视频 | 91免费看片 | 亚洲高清av | 黑人成人网 | 国产精品完整版 | 亚洲视频在线观看 | 中文字幕视频在线观看 | 啪啪精品 | 国产丝袜一区二区三区免费视频 | 亚洲欧美综合网 |