RabbitMQ学习

编程入门 行业动态 更新时间:2024-10-28 12:29:04

目录

写在前面一、服务搭建二、基本架构2.1、user2.2、Virtual host2.3、policies2.4、Exchange2.5、Queue三、服务端命令学习3.1、用户管理3.2、虚拟主机管理3.3、服务状态、集群监控四、更多客户端API使用,可参考[链接](blog.csdn.net/qq_42105629/article/details/107157137)五、关于 Rest API 可参考链接

写在前面

这里介绍下RabbitMQ的相关架构,还有服务端的相关命令

rabbitMQ是Erlang语言开发的消息中间件,会不同于kafka,RocketMQ

rabbitMQ中多了User(Tag)、Virtual Hosts(绑定用户,Tag)、policy(这里更高级的操作,多机房部署,异地多活机制)

本篇包括以下几个方面的学习

服务搭建服务端命令学习基本架构页面管理、监控更多客户端API操作,可链接

一、服务搭建

docker pull rabbitmq:3.8-management
docker run -d --name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v /my/rabbitmq/data:/var/lib/rabbitmq \
--hostname myrabbit \
-e RABBITMQ_DEFAULT_VHOST=/vhost  \
-e RABBITMQ_DEFAULT_USER=root \
-e RABBITMQ_DEFAULT_PASS=root \
rabbitmq:3.8-management

页面管理

localhost:15672/

二、基本架构

架构建立在 虚拟主机和用户上

2.1、user

2.2、Virtual host


知识点

虚拟主机,一般设定是要绑定用户权限的(会默认绑定管理员用户),页面这里并没有体现!!
可以命令行 绑定虚拟主机用户权限,参考下文

policies 是虚拟主机的参数配置,

2.3、policies

policies 是参数配置

这个设置也是RabbitMQ不同于其他MQ的东西,可以设置Queue和Exchange的相关参数,异地多活实现中会用到这个参数配置

2.4、Exchange

Exchange和Queue才是我们的操作和监控对象…,

这个Exchange是一个比较重要的概念,交换机
每个 交换机都会默认7 个交换机,会有四种不同的类型

directfanoutheaderstopic

一般使用时,会自定义交换机,绑定 Routing key 路由到不同的queue中,

,或 不自定义交换机,使用 默认的 AMQP Default ,这个时候, Routing key == Queue Name

2.5、Queue

需要注意 Queue 的知识点

Type - - Classic(经典) / Quorum(法定)Durability - - Durable(耐用,持久存储) / transient(临时存储)autoDelete - - NO / YESPriority 优先级

Queue可以定义优先级(0-255),使用时,注意 2 点

将队列声明为优先级队列,即在创建队列的时候添加参数 x-max-priority 以指定最大的优先级,值为0-255(整数)。

为优先级消息添加优先级(范围在队列优先级最大值内生效)。

三、服务端命令学习

3.1、用户管理

添加用户
rabbitmqctl  add_user username password列出所有用户
rabbitmqctl list_users删除用户
rabbitmqctl  delete_user username清除用户权限
rabbitmqctl  clear_permissions  -p  vhostpath  username列出用户权限
rabbitmqctl  list_user_permissions root修改密码
rabbitmqctl  change_password  username  newpassword

3.2、虚拟主机管理

列出所以虚拟主机:
rabbitmqctl list_vhosts
列出虚拟主机上的所有权限:
rabbitmqctl list_permissions -p h3
创建虚拟主机:
rabbitmqctl add_vhost h3
设置用户权限:
rabbitmqctl  set_permissions  -p  h3  username  ".*"  ".*"  ".*"
删除虚拟主机:
rabbitmqctl delete_vhost vhost h3

关于设置权限的时候,必须指定虚拟主机(智能单个指定)

3.3、服务状态、集群监控

移除所有数据,要在 rabbitmqctl stop_app 之后使用: rabbitmqctl reset
组成集群命令: rabbitmqctl join_cluster <clusternode> [--ram]
查看集群状态: rabbitmqctl cluster_status
修改集群节点的存储形式: rabbitmqctl change_cluster_node_type disc | ram
摘除节点:rabbitmqctl   fet_cluster_node  [--offline]
修改节点名称:rabbitmqctl  rename_cluster_node   oldnode1  newnode1 

四、更多客户端API使用,可参考链接

五、关于 Rest API 可参考链接

kdocs./l/cA2uFJ8r6
[金山文档] RabbitMQ Management HTTP API.html

更多推荐

RabbitMQ

本文发布于:2023-05-20 18:52:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/154769.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:RabbitMQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!