Ubuntu 安装Rabbitmq

Ubuntu 安装Rabbitmq,第1张

准备工作

一台服务器:Ubuntu Server 16.04.1 LTS 64位

安装RabbitMq

可以参照RabbitMq官网的安装教程(Installing on Debian and Ubuntu),来进行安装。

这里我们使用apt-get来安装,就简单的几条命令:

1.由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令:

2.添加公钥

3.更新软件包

4.安装 RabbitMQ

5.查看 RabbitMq状态

6.启动、停止、重启

执行了上面的步骤,rabbitMq已经安装成功。

7.启用 web端可视化 *** 作界面,我们还需要配置Management Plugin插件

此时,应该可以通过 http://localhost:15672 查看,使用默认账户guest/guest 登录。

注意:RabbitMQ 3.3 及后续版本,guest 只能在服务本机登录。

瞄了一眼官方文档,说的是默认会创建guest用户,但是只能服务器本机登录,建议创建其他新用户,授权,用来做其他 *** 作。

8.查看用户

9.添加管理用户

ok,你可以在你的浏览器上输入:http://服务器Ip:15672/ 来访问你的rabbitmq监控页面。使用刚刚添加的新用户登录。

赋予virtual host中所有资源的配置、写、读权限以便管理其中的资源,也是添加远程访问权限

基本 *** 作:

sudo rabbitmqctl # 查看所有命令和帮助文档

sudo rabbitmqctl stop # 停止服务

sudo rabbitmqctl status # 查看服务状态

sudo rabbitmqctl list_users # 查看当前所有用户

sudo rabbitmqctl list_user_permissions guest # 查看默认guest用户的权限

sudo rabbitmqctl delete_user guest # 删掉默认用户(由于RabbitMQ默认的账号用户名和密码都是告型乱guest。为了安全起见, 可以删掉默认用户)

sudo rabbitmqctl add_user username password # 添加新用户

sudo rabbitmqctl set_user_tags username administrator# 设置用户tag

sudo rabbitmqctl set_permissions -p / username ". " ". " ".*" # 赋予用户默认vhost的全部 *** 作权限

sudo rabbitmqctl list_user_permissions username # 查看用户的权限

rabbitmqctl set_user_tags User Tag

User为用户名, Tag为角色名(对应租销于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。

(1) 超级管理员(administrator)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行 *** 作。

(2) 监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

(3) 策略制定者(policymaker)

可登陆管理控制台袜档(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

与administrator的对比,administrator能看到这些内容

(4) 普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

(5) 其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

1.1、什么是RabbitMQ?

RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。

1.2、什么是AMQP?

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议碧埋,是应用层协议的一个开放标准,为面向消息的中间件设计。它从生产者接收消息并递送给消费者,在这个过程中,根据规则进行路由,缓存与持久化。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如: Python 、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

1.3、RabbitMQ的基础概念

1.4、RabbitMQ的特性

2.1、环境:两台Ubuntu16.04主机

10.27.0.53 rabbitmq-1

10.27.0.130 rabbitmq-2

必须保证各个主机名之间可以ping通

2.2、安装Erlang

2.3、安装rabbitmq

2.4、安装完成后,验证一下服务是否正常

搭建好的rabbitmq默认是没有配置文件的,需要我们来手动添加

Rabbitmq的一些运行脚本存放在 /usr/sbin 下面

2.5、开启web管理插件

2.5.1、创建一个用户nova,并设置密码为123456

2.5.2、查看现有用户表

这个时候nova用户是不启袜能访问web管理插件的,需要配置用户角色,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行 *** 作。

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

无法登陆管理控制台,通常就是普通的生产者和消费者。

将nova添加到administrator用户组

此时的nova用户只能通过本地来登录其他的IP无法直接使用这个账号。所以需要对他进行授权,使用户nova /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源

查看用户授权

2.5.3、开启web管理插件并重启rabbitmq服务

以下为关闭插件命令

通过浏览器访问 [http://10.27.0.53:15672]输入用户名nova 密码123456就可以看到后台了

3.1、从管理界面可以看到,此时只有一个节点rabbitmq-1,我们需要把rabbitmq-2加进来,rabbitmq-2按照步骤2进行一系列安装就可以。此处不再细说。

3.2、添加节点

两台主机上安装的 RabbitMQ 都保证都可以正常启动,才可以进行以下 *** 作

3.2.1、设置不同节点间统一认证的Erlang Cookie

这里将 rabbitmq-1 的该文件复制到 rabbitmq-2由于这个文件权悄慧激限是 400为方便传输,先修改权限,非必须 *** 作,所以需要先修改rabbitmq-2中的该文件权限为 777

然后将rabbitmq-1中的该文件拷贝的rabbitmq-2中

最后将权限和所属用户/组修改回来

此时rabbitmq-2节点需要重启一下服务

注意事项

cookie在所有节点上必须完全一样,同步时一定要注意。

erlang是通过主机名来连接服务,必须保证各个主机名之间可以ping通。可以通过编辑/etc/hosts来手工添加主机名和IP对应关系。如果主机名ping不通,rabbitmq服务启动会失败。

3.2.2、通过rabbitmqctl cluster_status命令,可以查看和个节点的状态,节点的名称是rabbit@shorthostname,

rabbitmq-1

rabbitmq-2

3.2.3

将两个节点组成集群

因为rabbitmq-server启动时,会一起启动节点和应用,它预先设置RabbitMQ应用为standalone模式。要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。使用rabbitmqctl stop_app仅仅关闭应用。

将2加入1中

启动节点2的应用

如果要使用内存节点,则可以使用以下命令:其中–ram指的是作为内存节点,要是想做为磁盘节点的话,就不用加–ram这个参数了

集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl cluster_status 来查看是否集群配置成功。

Rabbitmq-1

Rabbitmq-2

同时在Web管理工具中也可以看到效果

上面配置RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制,虽然该模式解决一部分节点压力,但队列节点宕机直接导致该队列无法使用,只能等待重启,所以要想在队列节点宕机或故障也能正常使用,就要复制队列内容到集群里的每个节点,需要创建镜像队列。

镜像队列概念:镜像队列可以同步queue和message,当主queue挂掉,从queue中会有一个变为主queue来接替工作。镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列。镜像队列设置后,会分一个主节点和多个从节点,如果主节点宕机,从节点会有一个选为主节点,原先的主节点起来后会变为从节点。queue和message虽然会存在所有镜像队列中,但客户端读取时不论物理面连接的主节点还是从节点,都是从主节点读取数据,然后主节点再将queue和message的状态同步给从节点,因此多个客户端连接不同的镜像队列不会产生同一message被多次接受的情况。

设置镜像队列策略

在普通集群的中任意节点启用策略,策略会自动同步到集群节点

命令格式

在任意一个节点上执行

集群重启

集群重启时,最后一个挂掉的节点应该第一个重启,如果因特殊原因(比如同时断电),而不知道哪个节点最后一个挂掉。可用以下方法重启:

先在一个节点上执行

在其他节点上执行

查看cluster状态是否正常(要在所有节点上查询)。

添加用户

处于安全的考虑,guest这个默认的用户只能通过 http://localhost:15672 来登录,其他的IP无法直接使用这个账号。所以我们需要添加一个其他用户。

命令格式

删除用户

命令格式

修改密码

命令格式

用户授权

命令格式

该命令使用户nova /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源

查看用户授权

命令格式

查看当前用户列表

可以看到添加用户成功了,但不是administrator角色

添加角色

这里我们也将nova用户设置为administrator角色

命令格式

再次查看权限

清除权限信息

命令格式

下一篇为测试文章 https://www.jianshu.com/p/f4153f72e4c1

到www dot rabbitmq dot com下载 /releases/rabbitmq-server/v3.6.6/rabbitmq-server_3.6.6-1_all.deb 安装文件,然后在root权限下运行桥者 dpkg -i rabbitmq-server_3.6.6-1_all.deb

或者添加自定义软件源:

echo 'deb http://www.rabbitmq.com/debian/ testing main' |

sudo tee /etc/apt/sources.list.d/饥芦rabbitmq.list

添加源的加密公钥

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc |

sudo apt-key add -

更新源

sudo apt-get update

通过软件库安敏肢薯装软件

sudo apt-get install rabbitmq-server


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12491246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存