RabbitMQ集群搭建
来源:互联网 发布:微课录屏软件介绍 编辑:程序博客网 时间:2024/05/16 00:57
集群主机名称(hostname)为:rabbitmqmaster,rabbitmqsalve1,rabbitsalver2,一共三个节点,分布在三个docker容器中。先来看看rabbitmqctl这个命令的用法,rabbitmq的管理功能最全的就是rabbitmqctl命令了,当然还有HTTP API和UI两种管理手段。 rabbitmqctl的使用方法:
Usage:rabbitmqctl [-n <node>] [-t <timeout>] [-q] <command> [<command options>] Options: -n node 默认node名称是"rabbit@server",如果你的主机明是'server.example.com',那么node名称是'rabbit@server'。 -q 安静输出模式,信息会被禁止输出 -t timeoutDefault node is "rabbit@server", where server is the local host. On a host named "server.example.com", the node name of the RabbitMQ Erlang node will usually be rabbit@server (unless RABBITMQ_NODENAME has been set to some non-default value at broker startup time). The output of hostname -s is usually the correct suffix to use after the "@" sign. See rabbitmq-server(1) for details of configuring the RabbitMQ broker.Quiet output mode is selected with the "-q" flag. Informational messages are suppressed when quiet mode is in effect.Operation timeout in seconds. Only applicable to "list" commands. Default is "infinity".
Commands(基本的管理功能):
stop [<pid_file>] #停止在erlang node上运行的rabbitmq,会使rabbitmq停止 stop_app #停止erlang node上的rabbitmq的应用,但是erlang node还是会继续运行的 start_app #启动erlan node上的rabbitmq的应用 wait <pid_file> #等待rabbitmq服务启动 reset #初始化node状态,会从集群中删除该节点,从管理数据库中删除所有数据,例如vhosts等等。在初始化之前rabbitmq的应用必须先停止 force_reset #无条件的初始化node状态 rotate_logs <suffix> #轮转日志文件 hipe_compile <directory>
cluster管理:
join_cluster <clusternode> [--ram] #clusternode表示node名称,--ram表示node以ram node加入集群中。默认node以disc node加入集群,在一个node加入cluster之前,必须先停止该node的rabbitmq应用,即先执行stop_app。 cluster_status #显示cluster中的所有node change_cluster_node_type disc | ram 改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk node转化为ram node forget_cluster_node [--offline] #远程移除cluster中的一个node,前提是该node必须处于offline状态,如果是online状态,则需要加--offline参数。 rename_cluster_node oldnode1 newnode1 [oldnode2] [newnode2 ...] update_cluster_nodes clusternode force_boot sync_queue [-p <vhost>] queue #同步镜像队列 cancel_sync_queue [-p <vhost>] queue purge_queue [-p <vhost>] queue set_cluster_name name
用户管理:
add_user <username> <password> #在rabbitmq的内部数据库添加用户 delete_user <username> #删除一个用户 change_password <username> <newpassword> #改变用户密码 \\改变web管理登陆密码 clear_password <username> #清除用户密码,禁止用户登录 authenticate_user <username> <password> set_user_tags <username> <tag> ... #设置用户tags list_users #列出用户 add_vhost <vhost> #创建一个vhosts delete_vhost <vhost> #删除一个vhosts list_vhosts [<vhostinfoitem> ...] #列出vhosts set_permissions [-p <vhost>] <user> <conf> <write> <read> #针对一个vhosts 给用户赋予相关权限 clear_permissions [-p <vhost>] <username> #清除一个用户对vhosts的权限 list_permissions [-p <vhost>] #列出哪些用户可以访问该vhosts list_user_permissions <username> #列出该用户的访问权限 set_parameter [-p <vhost>] <component_name> <name> <value> clear_parameter [-p <vhost>] <component_name> <key> list_parameters [-p <vhost>]
policy管理,策略用来控制和修改queues和exchange在集群中的行为,策略可以应用到vhost
set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] #name 策略名称,pattern 正则表达式,用来匹配资源,符合的就会应用设置的策略,apply-to 表示策略应用到什么类型的地方,一般有queues、exchange和all,默认是all。priority 是个整数优先级,definition 是json格式设置的策略。<name> <pattern> <definition> clear_policy [-p <vhost>] <name>#清除一个策略 list_policies [-p <vhost>]#列出已有的策略
queues && exchange状态信息
list_queues [-p <vhost>] [<queueinfoitem> ...]#返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。 list_exchanges [-p <vhost>] [<exchangeinfoitem> ...]#返回exchange的信息。 list_bindings [-p <vhost>] [<bindinginfoitem> ...] #返回绑定信息。 list_connections [<connectioninfoitem> ...]#返回链接信息。 list_channels [<channelinfoitem> ...]#返回目前所有的channels。 list_consumers [-p <vhost>]#返回consumers, status#显示broker的状态 node_health_check #节点健康检查 environment #显示环境参数的信息 report#返回一个服务状态report eval <expr> close_connection <connectionpid> <explanation> trace_on [-p <vhost>] trace_off [-p <vhost>] set_vm_memory_high_watermark <fraction> set_vm_memory_high_watermark absolute <memory_limit> set_disk_free_limit <disk_limit> set_disk_free_limit mem_relative <fraction>
集群节点的名称为rabbit@hostname,那么对应的集群节点名称为rabbit@rabbitmqmaster,rabbit@rabbitmqsalve1,rabbit@rabbitsalver2,把rabbitmqsalve1加入到集群
[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl stop_appStopping node rabbit@rabbitmqsalve1 ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl join_cluster rabbit@rabbitmqmaster #以disc的方式加入集群,可以使用参数--ram 以ram的方式加入到集群。Clustering node rabbit@rabbitmqsalve1 with rabbit@rabbitmqmaster ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl start_appStarting node rabbit@rabbitmqsalve1 ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl cluster_statusCluster status of node rabbit@rabbitmqsalve1 ...[{nodes,[{disc,[rabbit@rabbitmqmaster,rabbit@rabbitmqsalve1]}]}, {running_nodes,[rabbit@rabbitmqmaster,rabbit@rabbitmqsalve1]}, {cluster_name,<<"rabbit@rabbitmqmaster">>}, {partitions,[]}, {alarms,[{rabbit@rabbitmqmaster,[]},{rabbit@rabbitmqsalve1,[]}]}][root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl stop_appStopping node rabbit@rabbitmqsalve1 ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl change_cluster_node_type ram #修改节点为ramTurning rabbit@rabbitmqsalve1 into a ram node ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl start_appStarting node rabbit@rabbitmqsalve1 ...[root@rabbitmqsalve1 rabbitmq]# sbin/rabbitmqctl cluster_statusCluster status of node rabbit@rabbitmqsalve1 ...[{nodes,[{disc,[rabbit@rabbitmqmaster]}, {ram,[rabbit@rabbitmqsalve1]}]}, {running_nodes,[rabbit@rabbitmqmaster rabbit@rabbitmqsalve1]}, {cluster_name,<<"rabbit@rabbitmqmaster">>}, {partitions,[]}, {alarms,[{rabbit@rabbitmqmaster,[]}, {rabbit@rabbitmqsalve1,[]}]}]
设置镜像队列策略 在任意一个节点上执行:
[root@rabbitmqsalver1 /]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0" ...
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
参考:http://blog.csdn.net/engourdi/article/details/19334961
http://www.bbtang.info/linux/fuwu/610.html
http://hily.me/blog/2010/05/rabbitmq-multi-node-cluster/
http://88250.b3log.org/rabbitmq-clustering-ha
0 0
- 搭建rabbitmq集群
- rabbitmq 集群搭建
- RabbitMQ集群搭建
- rabbitmq集群搭建
- 搭建RabbitMQ集群
- CentOS7搭建rabbitmq集群
- rabbitmq集群搭建(多机)
- RabbitMQ单机集群搭建
- RabbitMQ集群搭建
- RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
- RabbitMQ集群搭建与测试
- 搭建rabbitmq的docker集群
- 单机版Rabbitmq集群搭建
- RabbitMQ的安装及集群搭建方法
- centos 7下rabbitmq集群搭建
- rabbitmq单机多实例集群搭建
- RabbitMQ的安装及集群搭建方法
- RabbitMQ集群及负载均衡搭建
- jsp 学习问题 1 怎么把<%属性值%>给form表单,提交后request得到
- 《一个操作系统的实现》读书笔记--第三章--中断机制
- HTTP Status 500 - Unable to compile class for JSP: 报错
- 最长公共子序列问题
- 设计模式学习笔记--抽象工厂模式(Abstract Factory Pattern)【创建型模式】
- RabbitMQ集群搭建
- builtin_shaders-5.3.4f1学习-Unlit/Texture
- Spring事务管理
- table展示数据,数据分页查询,底部导航生成
- poj 1564 Sum It Up DFS
- 周易正易 (2001刊行本影印_易經大意)
- android移动开发学习第一天上课笔记
- 漫步微积分三十四——体积计算:圆柱壳法
- python爬虫爬取19楼相亲女信息