RabbitMQ从入门到精通

本文详细介绍了RabbitMQ在Linux上的部署,包括erlang和rabbitMQ的安装,以及启动、管理和集群配置。同时,文章还涵盖了Java和SpringBoot客户端的HelloWorld示例,展示了如何创建发送和接收类。在消息路由部分,讲解了direct、topic、headers和fanout四种交换机类型及其使用场景,并提到了绑定和匿名队列的概念。
摘要由CSDN通过智能技术生成


安利HTML网页版观看详细代码

Linux 部署运维

1.安装erlang

2.安装socat

$ yum install socat

3.安装rabbit MQ

$ rpm -ivh rabbitmq-server-3.7.5-1.el7.noarch.rpm

4.查看rabbitmq状态

$ systemctl status rabbitmq-server.service
$ bbitmqctl status //当前状态
$ bbitmqctl cluster_status //集群状态

5.rabbitmq启动

$ systemctl start rabbitmq-server.service

6.rabbitmq的管理界面

$ rabbitmq-plugins list //列出所有插件
$ rabbitmq-plugins enable rabbitmq_management //启动后在http://server-name:15672访问
$ rabbitmq-plugins disable rabbitmq_management //关闭rabbitmq管理插件
$ rabbitmq-plugins enable rabbitmq_tracing //启用trace插件
$ rabbitmqctl trace_on //打开trace的开关
$ rabbitmqctl trace_on -p vhost
$ rabbitmqctl trace_off //关闭trace的开关
$ rabbitmq-plugins disable rabbitmq_tracing //关闭trace插件
$ rabbitmq-plugins enable rabbitmq_delayed_message_exchange //安装延时队列

7.rabbitmq停止

$ systemctl stop rabbitmq-server.service

8.rabbitmq关闭

$ rabbitmqctl shutdown

9.rabbitmq重启

$ systemctl restart rabbitmq-server.service
$ rabbitmqctl reset

10.配置文件位于/etc/rabbitmq

$ rabbitmqctl environment //查看运行参数

11.用户管理

$ rabbitmqctl list_users //列出所有用户
$ rabbitmqctl list_user_permissions user //查看用户权限
$ 例子:rabbitmqctl list_user_permissions hyp
$ rabbitmqctl add_user user password //添加用户
$ 例子:rabbitmqctl add_user hyp hyp
$ rabbitmqctl delete_user user //删除用户
$ 例子:rabbitmqctl delete_user hyp
$ rabbitmqctl set_user_tags user <administrator | monitoring | management | policymaker> //授予角色
例子:$ rabbitmqctl set_user_tags hyp administrator
administrator角色,可查看所有信息,并且可以对用户,策略(policy)进行操作.
monitoring角色,可查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
policymaker角色,可以对策略(policy)进行管理,但无法查看节点的相关信息.
management角色,只能查看队列和交换机等,无法看到节点信息,也无法对策略进行管理.
rabbitmqctl change_password user newpassword //修改密码
例子:$ rabbitmqctl change_password hyp hyppassword

12.集群

$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl join_cluster --ram rabbit@v01-app-rabbitmq01 //加入集群,该节点为内存节点类型
$ rabbitmqctl join_cluster --disc rabbit@v01-app-rabbitmq01 //加入集群,该节点为磁盘节点类型
$ rabbitmqctl change_cluster_node_type <ram | disc> //修改节点类型
$ rabbitmqctl start_app
/*到目前为止,集群虽然搭建成功,但只是默认的普通集群,exchange,binding等数据可以复制到集群各节点
但对于队列来说,各节点只有相同的元数据,即队列结构,但队列实体只存在于创建改队列的节点,即队列内容不会复制
(从其余节点读取,可以建立临时的通信传输)
$ rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' //将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直
$ rabbitmqctl list_policies //查看策略

Client Demo-HelloWorld (JAVA)

1.Create Maven Project And Import Rabbit MQ amqp-client

<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.4.1</version>
</dependency>

2.Create Send Class

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeoutException;

public class Send {
    
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws IOException, TimeoutException {
    
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("IP or Host");
        connectionFactory.setUsername("your UserName");
        connectionFactory.setPassword("your Password");
        Connection connection = connectionFactory.
RabbitMQ是一个开源的消息中间件,它实现了高级消息队列协议(AMQP)并提供可靠的消息传递机制。下面是RabbitMQ从入门到精通的介绍: 1. RabbitMQ基础概念: - 消息:在RabbitMQ中,消息是指要传递的数据单元。 - 队列:消息在RabbitMQ中存储的地方,类似于一个邮箱。 - 交换机:接收生产者发送的消息,并将消息路由到一个或多个队列。 - 绑定:用于将交换机和队列关联起来,定义了消息如何从交换机路由到队列。 - 路由键:用于交换机将消息路由到队列的规则。 2. RabbitMQ工作模式: - 简单模式:一个生产者向一个队列发送消息,一个消费者从该队列接收消息。 - 工作队列模式:一个生产者向一个队列发送消息,多个消费者从该队列接收消息。 - 发布/订阅模式:一个生产者发送消息到交换机,多个消费者绑定到该交换机并接收消息。 - 路由模式:一个生产者发送消息到交换机,并指定路由键,多个消费者根据不同的路由键接收消息。 - 主题模式:一个生产者发送消息到交换机,并指定主题,多个消费者根据不同的主题接收消息。 3. RabbitMQ高级特性: - 消息确认机制:生产者发送消息后,可以等待RabbitMQ的确认,确保消息已经被正确接收。 - 消息持久化:将消息存储到磁盘上,即使RabbitMQ服务器重启,消息也不会丢失。 - 消息优先级:可以为消息设置优先级,确保重要的消息被优先处理。 - 死信队列:当消息无法被消费时,可以将其发送到死信队列进行处理。 - 集群和高可用性:通过搭建RabbitMQ集群实现高可用性和负载均衡。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值