rabbitmq的使用(一)

一、安装

1.安装最新的Erlang

wget https://package.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

yum localinstall erlang-solutions-1.0-1.noarch.rpm

yum install epel-release

yum install erlang

2. 安装RabbitMQ

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

yum install rabbitmq-server

3.RabbitMQ基本命令

/etc/hosts

hostnamectl set-hostname ...

systemctl start rabbitmq-server  --后台启动服务

rabbitmq-plugins enable rabbitmq_management --启动web管理插件

rabbitmqctl list_users # 查看当前所有用户

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

rabbitmqctl delete_user guest # 为了安全起见, 先删掉默认用户

rabbitmqctl add_user test 123456 # 添加新用户

rabbitmqctl set_user_tags test administrator # 设置用户角色

 #rabbitmq用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他

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

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

            (3) 策略制定者(policymaker) 可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。

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

             (5) 其他的 无法登陆管理控制台,通常就是普通的生产者和消费者

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

rabbitmqctl list_user_permissions test # 查看用户的权限

rabbitmq-plugins enable rabbitmq_management # 开放web管理接口tcp/15672# http://47.98.200.222:15672/# 修改用户密码

rabbitmqctl change_password Username Password# 拷贝配置文件

cp /usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config# 限制用户只能通过localhost登录

vim /etc/rabbitmq/rabbitmq.config {loopback_users, ["test"]} # 如果后续有配置加","



4.安装RabbitMQ集群

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@rabbitmq-b

rabbitmqctl start_app

rabbitmqctl add_user zhanghs zhanghs  --添加用户,密码

rabbitmqctl set_user_tags zhanghs administrator --设置administrator权限

5.创建用户以及配置权限

创建用户    sudo rabbitmqctl  add_user alex alex3714

设置administrator权限  sudo  rabbitmqctl set_user_tags zhanghs administrator 

配置权限允许从外面访问    sudo rabbitmqctl set_permissions -p / alex ".*" ".*" ".*" 

6. 普通集群模式下,创建镜像队列

1).执行 rabbitmqctl sync_queue {queue-name} 可以让该节点的指定队列成为镜像队列,队列中的数据将会在整个集群的每个节点上复制存储

 可以通过执行 rabbitmqctl cancel_sync_queue {queue-name} 取消某个队列的同步属性

2).

set_policy 命令用来设置协议:

rabbitmqctl  set_policy  [-p Vhost]  Name  Pattern  Definition  [Priority]

-p Vhost:  可选参数,针对指定vhost下的queue进行设置

Name:  policy的名称

Pattern:  queue的匹配模式(正则表达式)

Definition:  镜像定义,包括三个部分 ha-mode,ha-params,ha-sync-mode

      ha-mode:  指明镜像队列的模式,有效值为 all/exactly/nodes

              all 表示在集群所有的节点上进行镜像

              exactly 表示在指定个数的节点上进行镜像,节点的个数由ha-params指定

              nodes 表示在指定的节点上进行镜像,节点名称通过ha-params指定

ha-params: ha-mode模式需要用到的参数

ha-sync-mode:  镜像队列中消息的同步方式,有效值为automatic(自动),manually(手动)

Priority:  可选参数, policy的优先级

例如,对队列名称以hello开头的所有队列进行镜像,并在集群的两个节点上完成镜像,policy的设置命令为:

rabbitmqctl  set_policy  hello-ha  "^hello"  '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

将指定的队列设置为镜像队列:

rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'

可以通过 rabbitmqctl list_policies 命令查看当前的协议列表

可以通过 rabbitmqctl clear_policy [-p vhostpath] {name} 清除某条协议

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容