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据说具有良 ...
随机推荐
- 对于Servlet、Servlet容器以及一个Servlet容器-Tomcat
Servlet.Servlet容器等内容讲解 转载自http://blog.csdn.net/iAm333 对于Servlet.Servlet容器以及一个Servlet容器-Tomcat这些概念讲解的 ...
- [Android]Android布局优化之<include />
转载请标明:转载于http://www.cnblogs.com/Liuyt-61/p/6602891.html -------------------------------------------- ...
- 2014最新 iOS App 提交上架store 详细流程
http://blog.csdn.net/tt5267621/article/details/39430659
- 18.Mysql搜索引擎及其区别
这是面试中的问题:当时也是没有直接回答出来,还是因为基础知识不扎实. 一般Mysql常用的搜索引擎有:ISAM.MylSAM.HEAP.InnoDB.Berkley(BDB) ISAM:执行读取操作的 ...
- 18.纯 CSS 创作 404 文字变形为 NON 文字的交互特效
原文地址:https://segmentfault.com/a/1190000014818274 感想: positon:absolute 和 :hover HTML代码: <!-- < ...
- <转载>Bootstrap 入门教程 http://www.cnblogs.com/ventlam/archive/2012/05/28/2520703.html 系列
Bootstrap建立了一个响应式的12列格网布局系统,它引入了fixed和fluid-with两种布局方式.我们从全局样式(Global Style),格网系统(Grid System),流式格网( ...
- markdown的试用
因为markdown,我接触到latex,因为latex,我花了几个月去看相关的书籍 我看了以下相关的资料 1.<LaTeX入门> 刘海洋 2.英文 TeX - LaTeX Stack E ...
- Mac上python2和python3的版本切换
在命令行执行 vi ~/.bash_profile 在文件下面加上: alias python2='/system/Library/Frameworks/Python.framework/Versio ...
- QtCreator中F1帮助不能使用的解决方法
环境:ubuntu11.04 在Qt中按F1跳转帮助是一个很方便的东东,点击左边的Help图标也是一样的功能.我今天遇到的问题是F1跳转出错,找不到文档: “No documentation avai ...
- C# 类库调试 启动外部程序无法调试
无法调试进程 test.exe [17936] 中的某些代码.请参阅下面的状态信息. IntelliTrace 代码失败(0x80131534). Managed (v4.6.v4.5.v4.0 ...