RabbitMQ小记(四)
1、RabbitMQ管理
(1)权限管理
物理服务器和虚拟主机都各自有独立的权限管理,用户访问需要设置权限。
授权命令:rabbitmqctl set permissions [-p vhost] {user) {conf) {write) { read)
vhost:授予用户可以访问的vohost名称。
user:访问指定vohost的用户名称。
conf:用户在那些资源有配置权限的正则表达式
write:用户在哪些资源上有写权限的正则表达式
read:用户在那些资源上有读权限的正则表达式
例如:rabbitmqctl set_permissions -p vhost1 root " .* " " .* " " .* "
(2)用户管理
单个用户可以访问多个RabbitMQ服务,根据创建用户时赋予的权限执行不同的操作。
添加用户命令:rabbitmqctl add_user {username} {password}
修改用户密码:rabbitmqctl change_password {username} {newpassword}
清除用户密码:rabbitmqctl clear_password {uesrname}
通过密码验证用户:rabbitmqctl authenticate_user {username} {password}
删除用户:rabbitmqctl delete_user {username}
查询所有用户:rabbitmqctl list_user
设置用户角色:rabbitmqctl set _user_tags {user} {tags}
(3)Web管理
访问http://127.0.0.1:15672,默认用户名/密码:guest/guest
远程RabbitMQ服务guest访问不了。
2、RabbitMQ配置
rabbitmq.config中MQ服务配置信息
tcp_listeners 监听
num_tcp_acceptors 处理TCP连接Eelang进程数,默认为0.
{
{
rabbit,{
{tcp_listeners ,[5673]}//修改监听端口
}
}
}.
3、RabbitMQ集群
rabbotMQ集群允许消费者和生产者在rabbitmq单个节点崩溃的情况下继续运行,还可以通过集群添加更多的节点来线性的扩展吞吐量,当集群中的某个节点崩溃时,该节点上的所有队列中的消息也会丢失。
rabbitMQ集群的元数据:队列元数据、交换器、绑定关系元数据、vhost元数据
多机节点配置:(1)配置各个节点的hosts文件,让各个节点可以互相识别
(2)编辑每个节点的cookie文件,保证每个节点的cookie值一样
(3)配置集群,可以通过rabbitmqctl配置或通过rabbitmq.config配置文件配置或通过rabbitmq-autocluster插件配置
将节点加入到指定集群中:rabbitmqctl joio_cluster {cluster_node} [--ram]
显示集群状态:rabbitmqctl cluster_status
修改集群节点类型:rabbitmqctl forget_cluster _ node [-- offiine]
将节点从集群中删除:rabbitmqctl update _ cluster_nodes {clusternode}
4、RabbitMQ存储
rabbitMQ队列通常由rabbit_amqqueue_process和backing_queue两部分组成,rabbit_amqqueue_process负责处理协议相关的消息,如接收生产者发送的消息、先消费者交付消息、处理消息确认等。backing_queue是消息存储的具体形式,并向rabbit_amqqueue_process提供相关的接口以供调用。