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. Netty实现Socket

    Netty实现Socket 从Java1.4开始, Java引入了non-blocking IO,简称NIO.NIO与传统socket最大的不同就是引入了Channel和多路复用selector的概念 ...

  2. Bootstrap-table动态表格

    在开发中遇到一个需要动态生成table的需求,包括表头和数据.在调试的过程中遇到很多问题,包括数据分页,解决之后记录一下. 如下代码的数据加载流程: ①表头是动态的,在初始化table之前需要调一次后 ...

  3. mybatis错误 Mapped Statements collection does not contain value for

    java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for 在unit里测试 ...

  4. entfrm-boot开发平台一览【entfrm开源模块化无代码开发平台】

    介绍 entfrm-boot是一个以模块化为核心的无代码开发平台,能够让中小企业快速从零搭建自己的开发平台:开箱即用,可插拔可自由组合:以模块化的方式,最大化的代码复用,避免重复开发:无代码可视化开发 ...

  5. 实时数据同步inotify+rsync

    inotify inotify是一个实时监控服务,他能实时监控服务器中的目录的变化,发现目录中变化后,在配合rsync服务推送到备份服务器上 inotify要求内核要在2.6.13或之上,通过noti ...

  6. FastDFS分布式文件系统及源码解析

    记录一次本人学习FastDFS-分布式文件系统的学习过程,希望能帮助到有需要的人. 首选得对此技术有个大概的了解,可以参考 https://www.cnblogs.com/centos2017/p/7 ...

  7. 【Matlab】快速傅里叶变换/ FFT/ fftshift/ fftshift(fft(fftshift(s)))

    [自我理解] fft:可以指定点数的快速傅里叶变换 fftshift:将零频点移到频谱的中间 用法: Y=fftshift(X) Y=fftshift(X,dim) 描述:fftshift移动零频点到 ...

  8. shell脚本 双向登陆免密

    一.简介 源码地址 日期:2018/4/23 介绍:用于hadoop的双向免密脚本,让填写机器互相之间免密登陆 效果图: 暂无 二.使用 适用:centos6+ 语言:中文 注意:执行前需要填写脚本里 ...

  9. malloc实现

    任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放 掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚 ...

  10. JUC之Lock接口以及Synchronized回顾

    Lock接口 Synchronized关键字回顾: 多线程编程步骤(上): 创建资源类,在资源类创建属性和操作方法 创建多个线程,调用资源类的操作方法 创建线程的四种方式: 继承Thread 实现Ru ...