• RabbitMQ初步到精通-第三章-RabbitMQ面板及环境搭建


    第三章-RabbitMQ面板及环境搭建

    1、RabbitMQ面板介绍

    Rabbitmq安装完毕后,若是本地环境,打入:http://localhost:15672/#/ 

    进入到MQ的控制台页面中:

     可以观察到此页面涉及的各个TAB,和我们前面介绍到的rabbitMQ架构中涉及的名词 都是一致的。不再赘述。

    再来到QueueTab下,

    在这里插入图片描述

    • Virtual host:该队列所在的虚拟主机
    • Name:队列名称
    • Features:队列的特性,如是否持久化、是否是过期队列等
    • State:此队列工作状态
              running:队列处于运行状态(正在创建队列、接受消息、消费消息等)
              idle:队列处于空闲状态
    • Ready:已经准备好的消息(还未被消费)
    • Unacked:未处理的消息(被拒绝签收)
    • Total:总的消息数量
    • incoming:消息的每秒接收个数
    • deliver / get:消息的每秒消费个数
    • ack:每秒手动签收消息个数

    重点对Features参数进行介绍

    •  D:d 是 durable 的缩写,代表这个队列中的消息支持持久化。
    • AD:ad 是 autoDelete 的缩写。代表当前队列的最后一个消费者退订时被自动删除。注意:此时不管队列中是否还存在消息,队列都会删除。
    • excl:是 exclusive 的缩写。代表这是一个排他队列。如果一个队列被声明为排他队列,该队列仅对首次声明它的连接可见,并在连接断开时自动删除。
    • TTL:是 x-message-ttl 的缩写。设置队列中的所有消息的生存周期,单位毫秒。
    • Lim:说明该队列配置了 x-max-length。限定队列的消息的最大值长度。当超过设置的最大长时,RabbitMQ默认的做法是将处于队列头部的信息丢弃或放入死信队列,可以通过设置overflow的值来改变这种方式,如果overflow值设置为reject-publish,那么最近被发送的消息将被丢弃。
    • Lim B:说明队列配置了 x-max-length-bytes。限定队列最大占用的空间大小, 一般受限于内存、磁盘的大小。
    • DLX:说明该队列配置了 x-dead-letter-exchange。当队列消息长度大于最大长度、或者过期,将从队列中删除的消息推送到指定的交换机中。
    • DLK:x-dead-letter-routing-key 的缩写,将删除的消息推送到指定交换机的指定路由键的队列中去。
    • Pri:x-max-priority 的缩写,优先级队列。表明该队列支持优先级。
    • Args:是 arguments 的缩写。代表该队列配置了 arguments 参数。
    • Ovfl:x-overflow 的缩写。队列中的消息溢出时,如何处理这些消息。要么丢弃队列头部的消息,要么拒绝接收后面生产者发送过来的所有消息。有两个配置项:drop-head,代表丢弃队列头部的消息,默认行为;reject-publish 设置队列中的消息溢出后,该队列的行为:”拒绝接收”(所有消息)。
    • ha-all:镜像队列。all 表示镜像到集群上的所有节点,ha-params 参数忽略。
    • Exp:Auto Expire,是 x-expires 配置的缩写。当队列在指定的时间没有被访问(consume, basicGet, queueDeclare…)就会被删除,Features=Exp。注意这里是删除队列,不是队列中的消息。

    2、开发环境搭建

    我们首先还是使用使用amqp-client -java 来搭建环境及学习后面的知识,当然amqp协议下有各种各样的语言实现,我们此文使用java。

    2.1 创建maven工程 pom.xml 引入jar包

    1. com.rabbitmq
    2. amqp-client
    3. 5.6.0

    2.2 创建工具类获取与Broker连接 RabbitCommonConfig

    1. import com.rabbitmq.client.Connection;
    2. import com.rabbitmq.client.ConnectionFactory;
    3. import java.io.IOException;
    4. import java.util.concurrent.TimeoutException;
    5. /**
    6. * @author rabbit
    7. * @version 1.0.0
    8. * @createTime 2022/07/27 19:39:00
    9. */
    10. public class RabbitCommonConfig {
    11. public static Connection getConnection() {
    12. Connection connection = null;
    13. //创建Connection工厂
    14. ConnectionFactory factory = new ConnectionFactory();
    15. factory.setVirtualHost("my-test-virtual");
    16. factory.setPassword("test");
    17. factory.setUsername("test");
    18. factory.setHost("127.0.0.1");
    19. factory.setPort(5672);
    20. //拿到连接
    21. try {
    22. connection = factory.newConnection();
    23. } catch (IOException e) {
    24. e.printStackTrace();
    25. } catch (TimeoutException e) {
    26. e.printStackTrace();
    27. }
    28. return connection;
    29. }
    30. }

    2.3 创建个测试类,测试工具类可连接,即可。开发环境便搭建完成,后续即可进行rabbitmq相关工作模式的学习。

    3、辅助工具

    3.1 抓包工具-wireshark -前面已介绍过 Wireshark · Go Deep.

    3.2 mq模拟器 -地址 :RabbitMQ Simulator

    ps:模拟器使用技巧,第一次用画线的时候总连不上,可以尝试从下往上连,逆向去连。

  • 相关阅读:
    大规模 Spring Cloud 微服务无损上下线探索与实践
    【FNN回归预测】基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测【含Matlab源码 2069期】
    node.js知识系列(1)-每天了解一点
    Talk | UCSD博士生刘明华:在开放的世界中理解和生成3D物体
    我的面试总结
    干货 | 在存储过程中使用事务来防止数据不一致
    【Java刷题进阶】基础入门篇③
    【面经】被虐了之后,我翻烂了equals源码,总结如下
    Netty01 - 第一个网络通信程序
    常用的Spring Boot注解及其作用
  • 原文地址:https://blog.csdn.net/blucastle/article/details/127921421