rabbitmq

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

yum 安装 rabbitmq # centos7

# In /etc/yum.repos.d/rabbitmq.repo

##
## Zero dependency Erlang
##

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
      https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

##
## RabbitMQ server
##

[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
      https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300







yum update -y

yum install socat logrotate -y

yum install erlang rabbitmq-server -y

编译安装rabbitmq

https://github.com/rabbitmq/rabbitmq-server/tags #历史版本

在安装RabbitMQ中需要注意:
1、RabbitMQ依赖于Erlang,需要先安装Erlang
2、Erlang和RabbitMQ版本有对应关系
https://www.rabbitmq.com/which-erlang.html

安装Erlang

1.先安装一些需要的依赖:

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

2.下载对应版本的Erlang

wget http://erlang.org/download/otp_src_24.0.tar.gz

3.解压编译安装配置环境变量

tar -zxvf otp_src_24.0.tar.gz
cd otp_src_24.0/
./configure --prefix=/usr/local/erlang


make && make install  



vim /etc/profile
export PATH=$PATH:/usr/local/erlang/bin     #注意路径的改变
source /etc/profile

下载rabbitmq二进制包

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.16

解压

tar -xvf rabbitmq-server-generic-unix-3.8.16.tar.xz

.配置环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/rabbitmq_server-3.8.16/sbin   #注意路径的改变

source /etc/profile

启动RabbitMQ

进入/usr/local/rabbitmq_server-3.8.16/sbin目录 #注意路径

cd /usr/local/rabbitmq_server-3.8.16/sbin
./rabbitmq-server start

启动成功了如下:

或者 后台启动rabbitmq服务

./rabbitmq-server -detached

添加其他用户

因为guest用户只能在本机访问,添加一个admin用户,密码也是admin

rabbitmqctl add_user admin admin     
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

启用管理插件

./rabbitmq-plugins enable rabbitmq_management

访问:http://虚拟机IP:15672 (记得配置防火墙开通端口 或者 关掉防火墙)

用户权限操作

创建用户

rabbitmqctl add_user {用户名} {密码}

// 设置权限
rabbitmqctl set_user_tags {用户名} {权限}

例:创建一个超级用户

rabbitmqctl add_user admin1 admin1
rabbitmqctl set_user_tags admin1 administrator

查看用户列表

rabbitmqctl list_users

为用户赋权

// 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p vhost1 user1 '.*' '.*' '.*'

// 查看权限
rabbitmqctl list_user_permissions user1

rabbitmqctl list_permissions -p vhost1

// 清除权限
rabbitmqctl clear_permissions [-p VHostPath] User

删除用户

rabbitmqctl delete_user Username

修改用户的密码

rabbitmqctl change_password Username Newpassword

修改内存,硬盘限制

rabbitmqctl set_vm_memory_high_watermark 0.6     命令临时修改,重启失效 
rabbitmqctl set_disk_free_limit 5GB    
写在配置文件里边,/etc/rabbitmq/rabbitmq.conf   文件默认不存在,需要手动创建   ps:二进制安装在目录里边的 /etc/ 下
vm_memory_high_watermark.relative = 0.6    
vm_memory_high_watermark.absolute = 2GB

rabbitmq集群

集群角色:

内存节点:只将数据保存到内存

磁盘节点:保存数据到内存和磁盘

内存节点虽然不写入磁盘,但是它执行比磁盘节点要好,集群中,只需要一个磁盘节点来保存数据就足够了,如果集群中只有内存结点,那么不能全部停止他们,否则所有数据消息在服务器全部停机之后都会丢失

推荐设计架构:

在一个rabbitmq集群里,有三台或以上机器,其中1台使用磁盘模式,其他节点使用内存模式,内存节点访问速度更快,由于磁盘IO相对较慢,因此可作为数据备份使用

配置主机名解析
安装rabbitmq-server
关闭rabbitmq-server
在其中一台服务器同步 拷贝 .erlang.cookie 至其他两台服务器 要记得授权,查看权限 yum 安装的一般在 /var/lib/rabbitmq/.erlang.cookie   源码安装的 一般在 $HOME/.erlang.cookie  



启动rabbitmq-server


~# rabbitmqctl stop_app #停止app服务
~# rabbitmqctl reset #清空元数据

~# rabbitmqctl join_cluster rabbit@mq-server3 --ram #以内存角色加入集群,不写默认是磁盘,可能会有报错正常 ps:要注意版本
~# rabbitmqctl start_app #启动app服务

~# rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' #将集群设置为镜像模式
~# rabbitmqctl cluster_status #验证集群状态

rabbitmq-安装部署及基础操作的更多相关文章

  1. Gitlab安装部署及基础操作

      环境说明 系统版本 CentOS 7.2 x86_64(较新版本的gitlab集成了更多功能,顺利运行起来的硬件要求较高,这里给了3G内存) 软件版本 gitlab-ce-10.8.4 GitLa ...

  2. CentOS7安装部署zabbix3.4操作记录

    CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...

  3. 10分钟学会RabbitMQ安装部署

    一.单机版的 RabbitMQ 的安装部署 1.安装 Erlang 环境 wget http://erlang.org/download/otp_src_19.3.tar.gz tar -zxvf o ...

  4. rabbitmq安装部署

    本文主要介绍rabbitmq-server-3.6.12的安装部署 #  检查是否已经安装旧版本的软件 rpm -qa|grep erlang rpm -qa|grep rabbitmq # 如果之前 ...

  5. CentOS7安装MongoDB及基础操作

    安装环境说明 系统环境说明 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@ma ...

  6. [MongoDB]------windos下的安装部署与基础使用

    1.安装 首先前往官网进行下载,这里贴个地址https://www.mongodb.com/download-center#community 点击大大的原谅色的DOWNLOAD(msi)按钮进行下载 ...

  7. K8S的安装部署以及基础知识

    Kubernetes(K8S)概述 Kubernetes又称作k8s,是Google在2014年发布的一个开源项目. 最初Google开发了一个叫Borg的系统(现在命名为Omega),来调度近20多 ...

  8. 一、WINDOWS下 RabbitMQ安装部署

    安装需要用管理员权限,全部右键管理员身份运行.建议安装到虚拟机里面,免得影响日常使用. 1.下载   https://dl.bintray.com/rabbitmq/all/rabbitmq-serv ...

  9. Linux安装postgresql及基础操作

    安装环境说明 系统环境说明 [root@slave1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@sl ...

随机推荐

  1. day 03Linux修改命令提示符

    day 03Linux修改命令提示符 昨日回顾 1.选择客户机操作系统: Microsoft Windows # 一次只能安装一台电脑 Linux(推荐) VMware ESX # 服务器版本VNwa ...

  2. day28 进程(Process)

    day28 进程(Process) 1.进程的概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. # 进程是系统进行 ...

  3. STM32 CAN用队列缓冲接收的例子

    [1]CAN接收用队列缓冲的例子: 发单帧没有问题,多帧或者连续发两帧就有问题.

  4. 转 Android Lifecycle、ViewModel和LiveData

    转自:https://www.jianshu.com/p/982545e01d0a 1.概述 在I / O '17的时候,其中一个重要的主题是Architecture Components.这是一个官 ...

  5. OC-copy,单例

    总结 编号 主题 内容 一 NSFileManager NSFileManager介绍/用法(常见的判断)/文件访问/文件操作 二 集合对象的内存管理 集合对象的内存管理/内存管理总结 三 *copy ...

  6. vue2 页面路由

    vue官方文档 src/views/Login.vue <template> <div> <h2>登录页</h2> </div> </ ...

  7. 实现nfs持久挂载+autofs自动挂载

    实验环境: 两台主机 node4:192.168.37.44 NFS服务器 node2:192.168.37.22 客户端 在nfs服务器,先安装nfs和rpcbind [root@node4 fen ...

  8. 【Spring Framework】Spring入门教程(八)Spring的事务管理

    事务是什么? 事务:指单个逻辑操作单元的集合. 在操作数据库时(增删改),如果同时操作多次数据,我们从业务希望,要么全部成功,要么全部失败.这种情况称为事务处理. 例如:A转账给B. 第一步,扣除A君 ...

  9. 【阿菜做实践】利用go语言写一个简单的Pow样例

    本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简单demo.开发IDE用的是JB Golang. 整个项目的文件结构如下: PoWdem ...

  10. GaussDB(DWS)中共享消息队列实现的三大功能

    摘要:本文将详细介绍GaussDB(DWS)中共享消息队列的实现. 本文分享自华为云社区<GaussDB(DWS)CBB组件之共享消息队列介绍>,作者:疯狂朔朔. 1)共享消息队列是什么? ...