Centos7 安装 erlang rabbitmq
1、安装Erlang依赖
采用官网的rpm包的形式进行安装,不采用yum(由系统进行自动安装 可能因为版本低的问题而出现一系列问题)
erlang依赖 rpm包下载地址https://github.com/rabbitmq/erlang-rpm/releases
刚开始安装rpm,需要参考rabbitmq的服务安装版本 这里采用rabbitmq-server-3.7.7版本,所以通过官网可知需要的erlang版本需要大于19.3,否则在安装rabbitMQ的时候会出现erlang版本过低的情况
安装erlang rpm
#使用rpm命令来安装
rpm -ivh erlang-20.3-1.el7.centos.x86_64.rpm
1.1)检查Erlang是否安装成功
- [root@localhost ~]# erl -version
- Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 9.3
- [root@localhost ~]#
安装erlang 可能会出现
警告:rabbitmq-server-3.7.7-1.el7.noarch.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
错误:依赖检测失败:
erlang >= 19.3 被 rabbitmq-server-3.7.7-1.el7.noarch 需要
socat 被 rabbitmq-server-3.7.7-1.el7.noarch 需要
所以还需要安装socat
#使用liunx来提供的yum 安装socat
yum -y install socat
2、安装RabbitMQ服务
安装rabbitMQ
#安装rabbit-server服务
rpm -ivh rabbitmq-server-3.7.7-1.el7.noarch.rpm
rabbitMQ的相关文件所在位置
1、相关命令 :/usr/lib/rabbitmq/bin/
2、相关的日志:/var/log/rabbitmq/
3、相关的配置 : /etc/rabbitmq/
4、 设置的用户权限等元数据信息:/var/lib/rabbitmq/mnesia/
3、设置用户角色权限等信息
$ chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务
$ /sbin/service rabbitmq-server start # 启动服务
$ /sbin/service rabbitmq-server status # 查看服务状态
$ /sbin/service rabbitmq-server stop # 停止服务
# 查看当前所有用户
$ rabbitmqctl list_users
# 查看默认guest用户的权限
$ rabbitmqctl list_user_permissions guest
# 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
$ rabbitmqctl delete_user guest
# 添加新用户
$ rabbitmqctl add_user username password
# 设置用户tag(角色新)
$ rabbitmqctl set_user_tags username administrator
# 赋予用户默认vhost的全部操作权限
$ rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
# 查看用户的权限
$ rabbitmqctl list_user_permissions username
#开放端口
vi /etc/sysconfig/iptables
#端口配置生效
service iptables save
service iptables restart
#关闭防火墙
service iptables stop
开启web ui (一定要添加新的用户,因为默认的用户不能支持远程访问)
#开启web访问页面
$ rabbitmq-plugins enable rabbitmq_management
#关闭插件
rabbitmq-plugins disable rabbitmq_management
4、更改端口号
客户端远程连接的默认端口为5672 webUI的端口号为15672 为了安全现在更改端口号。
修改/etc/rabbitmq/rabbitmq.config 如果没有则可以通过官方网站获取到https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example (官方推荐的配置文件设置 )
将其放到自己的/etc/rabbitmq/ 并更改为rabbitmq.config, 按照自己的业务需求设置相关配置。
%% {tcp_listeners, [{"127.0.0.1", 5672},
%% {"::1", 5672}]},
[
{rabbit,
[
%%更改客户端的监听端口
{tcp_listeners,[xxxx]}
]
},
{ rabbitmq_management,
[
%%更改web UI 界面的访问端口
{listener,[{port,xxxx}]}
]
}
].
重启服务,生效
5、rabbitMQ的基础知识介绍
1、RabbitMQ的相关名词
生产者 路由(交换器) 队列( 从路由到队列的过程称为绑定) 消费者
消息丢失 消息确认 消息重发
交换器:根据路由键将消息从交换器到队列 有4种类型
1、direct 通过路由键 精确匹配 例如 路由键为rabbitMQ.hello,通过该路由只能匹配到对应的名为rabbitMQ.hello
2、fanout 广播形式 所有与该fannout绑定的队列都会收到相关消息
3、topic topic在direct的基础上的扩展(个人理解),既可以支持模糊匹配,也可以支持精确匹配
4、headers(匹配AMOP的header 不常用)
2、RabbitMQ的好处
异步 解耦 削峰 提交系统的可用性
3、RabbitMq的使用场景
1、Mq是跨越进程的通信方式,可以使用在两个应用程序进行交互的上面
2、解决耗时的问题,例如用户注册的时候,需要复杂的后续操作,即在将用户的信息保存到数据库后,
需要给用户发送短信提醒,发送邮箱提醒等等(后面的操作可以放到消息中),加快用户注册的响应时间
3、将系统进行解耦,便于系统分布式部署
4、消息队列可靠性、解耦、实时消息通信
1、消息队列如何保证可靠性:通过消息确认机制,
在每一次消息发送环节都会进行消息确认,生产者向消息队列传递消息成功后消息队列会向生产者发送消息确认
同理消费者获取到消息,也会向消息队列发送确认
2、多个应用程序不会直接相互连接,而是与消息队列建立联系
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.用户管理
4.1)查看用户列表
- [root@localhost ~]# rabbitmqctl list_users
- Listing users ...
- guest [administrator]
- [root@localhost ~]#
4.2)添加用户
rabbitmqctl add_user 用户名 密码
- [root@localhost ~]# rabbitmqctl add_user admin 123456
- Adding user "admin" ...
- [root@localhost ~]#
4.3)删除用户
rabbitmqctl delete_user 用户名
- [root@localhost ~]# rabbitmqctl delete_user admin
- Deleting user "admin" ...
- [root@localhost ~]#
4.4)修改用户密码
rabbitmqctl change_password 用户名 新密码
- [root@localhost ~]# rabbitmqctl change_password admin 666666
- Changing password for user "admin" ...
- [root@localhost ~]#
5.角色管理
5.1)角色说明
- none(普通用户)
- 没有控制台操作权限。
- management(普通管理员)
- 可以查看当前用户的queues, exchanges和bindings。
- 可以查看和关闭当前用户的channels和connections。
- 可以查看当前用户的virtual hosts的统计信息。
- policymaker(策略管理员)
- 具有management权限及查看、创建和删除当前用户的policies和parameters。
- monitoring(监控管理员)
- 具有management权限
- 查看所有virtual hosts及全局的统计信息
- 查看所有用户的connections和channels
- 查看所有节点数据,如clustering和memory使用情况
- administrator(超级管理员)
- 具有policymaker、monitoring权限
- 查看、创建、删除所有virtual hosts
- 查看、创建、删除所有users
- 查看、创建、删除所有permissions
- 可以关闭所有用户的connections
- none(普通用户)
- 没有控制台操作权限。
- management(普通管理员)
- 可以查看当前用户的queues, exchanges和bindings。
- 可以查看和关闭当前用户的channels和connections。
- 可以查看当前用户的virtual hosts的统计信息。
- policymaker(策略管理员)
- 具有management权限及查看、创建和删除当前用户的policies和parameters。
- monitoring(监控管理员)
- 具有management权限
- 查看所有virtual hosts及全局的统计信息
- 查看所有用户的connections和channels
- 查看所有节点数据,如clustering和memory使用情况
- administrator(超级管理员)
- 具有policymaker、monitoring权限
- 查看、创建、删除所有virtual hosts
- 查看、创建、删除所有users
- 查看、创建、删除所有permissions
- 可以关闭所有用户的connections
5.2)查看用户角色
rabbitmqctl list_users 用户名
- [root@localhost ~]# rabbitmqctl list_users
- Listing users ...
- admin [administrator]
- guest [administrator]
- [root@localhost ~]#
5.3)设置用户角色
rabbitmqctl set_user_tags admin 角色名称(支持同时设置多个角色)
- [root@localhost ~]# rabbitmqctl set_user_tags admin administrator
- Setting tags for user "admin" to [administrator] ...
- [root@localhost ~]#
6.权限管理
用户权限是指用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限会影响到queue的读写消息、exchange发送消息以及queue和exchange的绑定操作。
6.1)查看用户权限
rabbitmqctl list_user_permissions 用户名
- [root@localhost ~]# rabbitmqctl list_user_permissions guest
- Listing permissions for user "guest" ...
- / .* .* .*
- [root@localhost ~]#
6.2)设置用户权限
rabbitmqctl set_permissions -p 虚拟主机名称 用户名 <conf> <write> <read>
- [root@localhost ~]# rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
- Setting permissions for user "admin" in vhost "/" ...
- [root@localhost ~]#
7.虚拟主机管理
为什么需要虚拟主机(vhost)?因为RabbitMQ只能在虚拟主机的粒度上进行权限控制。每个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、交换器和绑定等。
7.1)查看虚拟主机
- [root@localhost ~]# rabbitmqctl list_vhosts
- Listing vhosts ...
- /
- [root@localhost ~]#
7.2)添加虚拟主机
rabbitmqctl add_vhost 虚拟主机名称
- [root@localhost ~]# rabbitmqctl add_vhost coreSystem
- Adding vhost "coreSystem" ...
- [root@localhost ~]#
7.3)删除虚拟主机
rabbitmqctl delete_vhost 虚拟主机名称
- [root@localhost ~]# rabbitmqctl delete_vhost coreSystem
- Deleting vhost "coreSystem" ...
- [root@localhost ~]#
8.web后台管理
8.1)启用后台管理插件
- [root@localhost ~]# rabbitmq-plugins enable rabbitmq_management
- The following plugins have been configured:
- rabbitmq_management
- rabbitmq_management_agent
- rabbitmq_web_dispatch
- Applying plugin configuration to rabbit@localhost...
- The following plugins have been enabled:
- rabbitmq_management
- rabbitmq_management_agent
- rabbitmq_web_dispatch
- started 3 plugins.
- [root@localhost ~]#
8.2)登录
浏览器输入:http://服务器Ip:15672/
Centos7 安装 erlang rabbitmq的更多相关文章
- centos7 安装erlang rabbitMQ
环境: 虚拟机 centos7 minimal 一.安装Erlang 1.安装依赖 yum install build-essential openssl openssl-devel unixODBC ...
- Centos7 安装配置 Rabbitmq Cluster
Rabbitmq介绍 RabbitMQ是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能.健壮以及可伸缩性出名的 ...
- Centos7安装部署Rabbitmq教程
依赖关系: 版本依赖一定要提前看清楚. RabbitMQ相关版本依赖关系查看 https://www.rabbitmq.com/which-erlang.html 可以看到要求版本Erlang21.3 ...
- Centos 6.4 安装erlang&rabbitmq
1. 安装 erlang 1.1 准备工作,先安装依赖库 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-d ...
- 编译安装Erlang+RabbitMQ
楔子 由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件 ...
- Centos7安装erlang以及RabbitMQ Centos启动rabbitmq
本文使用版本: rabbitmq-server-3.8.3-1.el7.noarch.rpm Centos7 erlang 22.3.1 在线安装 yum install esl-erlan ...
- linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.7.9)的步骤以及一些注意事项
首先下载安装包,之后先安装erlang,安装erlang需要很多依赖,所以一步步来: 首先 wxWidgets会报错,这个不是必须的,可以不安装,不影响 然后需要安装一些必须的依赖: yum inst ...
- linux centos7 erlang rabbitmq安装
最终的安装目录为/opt/erlang 和 /opt/rabbitmq wget http://erlang.org/download/otp_src_21.0.tar.gztar zxvf otp_ ...
- Erlang&RabbitMQ服务安装配置
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...
随机推荐
- SpringBoot异步请求
何为异步请求 在Servlet 3.0之前,Servlet采用Thread-Per-Request的方式处理请求,即每一次Http请求都由某一个线程从头到尾负责处理.如果一个请求需要进行IO操作,比如 ...
- 【Fiddler学习】Fiddler简介和Web抓包应用(转)
一.Fiddler是什么? Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的进出Fiddler的数据. Fiddler 要比其 ...
- vmware三种网络模式:桥接模式|仅主机|NAT模式
VMware 网络模式 1. Bridged(桥接)桥接模式下,宿主机物理网卡(主机网卡)和虚拟网卡通过 VMnet0 虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,物理网卡和虚拟网卡 ...
- 二级VB备考中
今天安装了一个VB软件,二级备考中,每天一套牌卷子. 在Html5中 align 与valign改变了属性 vertial-align 是垂直方向的改变 面对网站首页的建立需要首先画好一份区域设计图 ...
- groovy 从jsonList中读取某个字段
今天又被groovy的高效吓到了. 想提取所有的itemCodes,两种玩法 一.常规方法:遍历组装 RestResult items = getListPager() def temp = [] i ...
- MySQL 5.7 以上版本默认禁止 0000-00-00 的日期
今天做数据同步,发现一直有报错,集中在时间的默认值.数据源的mysql版本是5.5.30,有些时间字段默认值设置为0000-00-00 00:00:00.目标mysql版本为5.7.17,查资料发现, ...
- leetcode解题报告 32. Longest Valid Parentheses 用stack的解法
第一道被我AC的hard题!菜鸡难免激动一下,不要鄙视.. Given a string containing just the characters '(' and ')', find the le ...
- CentOs7下php7装redis拓展报错
遇到PHP Startup: Unable to load dynamic library:undefined symbol: zval_used_for_init in Unknown on lin ...
- nginx+php 开启https
nginx 配置如下,配置好重启nginx,不是nginx -s reload,如果还不能访问肯定就是防火墙问题,关闭防火墙再试试. 我遇到的问题是:我服务器是ecs,域名解析到阿里云复杂均衡的,结果 ...
- Spring事务异常rollback-only
转自:https://blog.csdn.net/sgls652709/article/details/49472719 前言 在利用单元测试验证spring事务传播机制的时候出现了下面的异常: Tr ...