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据说具有良 ...
随机推荐
- 微信小程序连接本地接口(转)
原文地址 最近的一个项目就是微信小程序 第一次接触微信开发者工具,并进行小程序的后端开发, 于是想看一下小程序如何请求本地的后台服务接口 wx.request({ url: 'http://local ...
- tornado-websocket
WebSockets 允许浏览器和服务器之间进行 双向通信 server端: class WebSocketHandler(WebBaseHandler): ''' websocket ''' use ...
- CPU UsageTimes Profile (cpu=times)
HPROF工具能搜集CPU使用信息通过注入代码到每个方法进入点和退出点.因此能够统计方法真实调用次数和花费的时间. 它使用BCI(Byte Code Injection),所以比cpu=samples ...
- jquery给按钮绑定事件
JQuery: $(function(){ $("#btn1").bind("click",function(){ $("#div1").s ...
- DataBinding(二):DataBinding的基本用法
转自:DataBinding系列(二):DataBinding的基本用法 1.在xml中引入一些基础变量Variables data 标签中可以有任意数量的 variable 标签.这些变量可以使Ja ...
- linux获取线程ID
pthread_self()获取当选线程的ID.这个ID与pthread_create的第一个参数返回的相同.但是与ps命令看到的不同,因此只能用于程序内部,用于对线程进行操作. #include & ...
- html中控制Tab键的顺序
在做项目中,需要控制html页面上登陆表单的按Tab键的顺序,代码如下: <tr> <td width="19%&quo ...
- 机器学习-文本数据-文本的相关性矩阵 1.cosing_similarity(用于计算两两特征之间的相关性)
函数说明: 1. cosing_similarity(array) 输入的样本为array格式,为经过词袋模型编码以后的向量化特征,用于计算两两样本之间的相关性 当我们使用词频或者TFidf构造出 ...
- PLSQLDeveloper_免安装自带client
PLSQLDeveloper_解压版 免安装并且自带有client客户端. 要安装解压附带的readme.txt进行配置. 一. 目录结构 D:\install\PLSQL |-- instantcl ...
- python 之列表推导式,集合推导式,以及字典推导式
https://www.cnblogs.com/weihengblog/p/8428124.html