RabbitMq笔记说明

2019-12-18 17:31:35 浏览数 (1)

生产者工作模式:将消息 msg 发送给指定的交换器 exchange, 由交换器 exchange 根据指定的规则-路由键 (routing key) 决定投递到哪个队列 queue

消费者工作模式:声明一个队列,将队列绑定到交换器 exchange, 并指定接收消息的规则-路由键(routing key) 

1.basic.consume 接收模式 消息已达到队列自动接收(使用使用basic.consume来实现高吞吐量)

2.basic.get 主动拉去一条数据

3.basic.ack 显式发送一个确认 (当参数auto_ack 设置 true 时,自动确认消息) 如果不确认将会不在发送消息

4.rabbit 2.0.0 之后 basic.reject 显式拒绝rabbit发送消息 如果把reject 命令的requeue参数设置true,rabbitmq将会重新发送下一个,如果为false,rabbit将会移除 (放到死信中)

5.queue.declare 创建队列 必须先取消订阅并将信道设置为 传输 模式。passive true 只检测不创建 durable true 为 持久化 exclusive 设置true 将会变成私有 auto-delete 自动删除 最后一个取消订阅就会移除队列 

6.四种类型 direct fanout topic headers (headers抛弃) 

可以 以队列名称 作为 路由键

direct (路由键匹配,投递到对应的队列) channel->basic_publish("消息内容","空字符 指定默认交换器","路由键") exchange.declare (创建队列设置合适参数) 

fanout (将接收到的消息绑定到队列上 发送到所有指定交换器的队列,用于同一条消息,需要多种操作) 

topic (来自不同源头的消息达到同一个队列) channel->basic_publish("消息内容","空字符 指定默认交换器","路由键") channel->queue_bind("队列名称","空字符 指定默认交换器","路由键 *.abc.abc模糊匹配 #匹配所有")

交换器、队列、绑定   根据绑定规则将队列绑定到交换器   消息发布到交换器   三种类型 基于路由键和交换器类型,服务器决定将消息投递到哪个队列

7.vhost 虚拟主机 默认vhost为 /

rabbitmqctl add_vhost 虚拟主机名称 创建虚拟主机 rabbitmqctl delete_vhost 虚拟主机名称 删除虚拟主机 rabbitmqctl list_vhosts 列出虚拟主机列表 通过 -n rabbit@ip 管理远程借点

8.持久化 

默认重启之后 交换器与队列消失, 原因在于参数 durable 为 false 

持久化 将 队列 与 交换器 durable 设置为 true 将消息队列的投递模式 delivery mode 设置为 2 标记持久化 (必须使用持久化投递模式2 发布到持久化的交换器 到达 发布到持久化的队列)

将信道设置成事务模式 

9.rabbitmq 

启动 ./sbin/rabbitmq-server   守护进程启动 ./sbin/rabbitmq-server -detached   停止 ./sbin/rabbitmqctl stop

指定端口与节点名称 RABBITMQ_NODENAME name RABBITMQ_NODE_PORT 5672 ./sbin/rabbitmq-server -detached

清空 ./sbin/rabbitmq-server -n name@ip reset

#添加集群 ./sbin/rabbitmqctl -n name1@ip reset cluster name1@ip reset name@ip reset

停止 ./sbin/rabbitmqctl stop_app 启动 ./sbin/rabbitmqctl start_app

10.rabbitmq-web

添加插件 ./sbin/rabbitmq-plugins enable rabbitmq_management 访问 127.0.0.1:15672 

取消插件 ./sbin/rabbitmq-plugins disable rabbitmq_management

11.管理用户

新增 ./sbin/rabbitmqctl add_user user_name pass_word 删除 ./sbin/rabbitmqctl delete_user user_name 修改密码 ./sbin/rabbitmqctl change_user user_name pass_word

配置权限 ./sbin/rabbitmqctl set_permissions -p vhost_name user_name .* .* .* (配置 写 读) 清除权限 ./sbin/rabbitmqctl clear_permissions -p vhost_name user_name

列出权限列表 ./sbin/rabbitmqctl list_permissions -p vhost_name 列出用户权限列表 ./sbin/rabbitmqctl list_user_permissions user_name

列出交换器列表 ./sbin/rabbitmqctl list_exchanges -p vhost_name

列出队列列表 ./sbin/rabbitmqctl list_queues -p vhost_name 

列出绑定列表 ./sbin/rabbitmqctl list_bindings -p vhost_name 

0 人点赞