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. 数仓day03-----日志预处理

    1. 为什么要构建一个地理位置维表(字典) 在埋点日志中,有用户的地理位置信息,但是原始数据形式是GPS坐标,而GPS坐标在后续(地理位置维度分析)的分析中不好使用.gps坐标的匹配,不应该做这种精确 ...

  2. Linux—禁止用户SSH登录方法总结

    Linux-禁止用户SSH登录方法总结 一.禁止用户登录 1.修改用户配置文件/etc/shadow       将第二栏设置为"*",如下.那么该用户就无法登录.但是使用这种方式 ...

  3. SpringBoot让测试类飞起来的方法

    单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...

  4. Java Bean 与Spring Bean 的区别

    什么是JavaBean: JavaBean是一种JAVA语言写的可重用组件.JavaBean符合一定规范写的Java类,是一种规范.它的方法命名,构造以及行为必须符合特定的要求:     1.所有属性 ...

  5. Linux下部署Java项目(jetty作为容器)常用脚本命令

    startup.sh #!/bin/bash echo $(basename $(pwd)) "jetty started" cd jetty nohup java -Xmx8g ...

  6. Declarative Pipeline 基础语法

    Declarative Pipeline(声明式)核心概念 核心概念用来组织pipeline的运行流程 1.pipeline :声明其内容为一个声明式的pipeline脚本 2.agent:执行节点( ...

  7. cmd窗口连接mongodb服务端

    1----->配置环境变量,将mongodb\bin目录配置到path 2----->打开cmd窗口,进入到bin目录,测试mongodb服务端是否在运行:net start mongod ...

  8. Mac 下安装Phonegap开发环境

    Mac 下安装Phonegap开发环境 2014.09.11  星期四 评论 0 条    阅读 5,613 次 作者:野草 标签:phonegap ios mac 什么是Phonegap呢?Phon ...

  9. UNCTF2020 pwn题目

    YLBNB 用pwntools直接连接,然后接受就行. 1 from pwn import * 2 3 p = remote('45.158.33.12',8000) 4 context.log_le ...

  10. 成本计算?(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 成本各种输入以后就该计算了是吗? 其实,计算有我什么事啊,不都是些四则运算吗?Project要是连这都搞不定,他还在地球上 ...