• RabbitMQ使用


    1、工作队列
    现在的程序只定义有一个生产者和一个消费者,如果说现在有一个生产者对应多个消费者呢?那就表示一个工作队列,而工作队列的最大特征在于:若干个消费者一起完成工作。

    当启动了多个消费者之后,这些消费者会一起共同完成所发出的消息消费处理,这样的处理可以保证消息处理的速度更加的快速。但是千万要记住,此时使用的是普通队列消息。

    所以队列消息之中的所有消费者会自动进行负载均衡设计。

    2、消息持久化
    在之前所创建的消息队列形式实际上都会发现有一个持久化的选项,所谓的持久化的本质在于:即便RabbitMQ服务停机之后,其未消费的消息也可以在重启之后进行消费处理。
    2.1、观察临时消息处理,在RabbitMQ里面队列可以由用户在使用的时候创建,

    public static final String QUEUE_NAME = "lynch.msg.queue.tmp";
    channel.queueDeclare(ConnectionUtils.QUEUE_NAME, false, false, true, null);

    这个时候如果服务器关闭了,并且有未消费的消息存在,则在重新启动之后,这些消息将会被清空,如果不想清空则要建立持久化消息。

    2.1、建立持久性消息

    public static final String QUEUE_NAME = "lynch.msg.queue.persistent";
    channel.queueDeclare(ConnectionUtils.QUEUE_NAME, true, false, true, null);
    //如果不编写MessageProperties.PERSISTENT_TEXT_PLAIN,则消息无法被持久化
    channel.basicPublish("", ConnectionUtils.QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN,message.getBytes());

    3、虚拟主机
    虚拟主机可以理解为RabbitMQ中的重大特点,实际上在之前就已经存在有虚拟主机了。因为每一个rabbitmq如果没有配置则会默认一个虚拟主机的信息,当然,用户也会建立属于自己的虚拟主机,并且每一个虚拟主机里有自己的队列信息。

    3.1、虚拟主机的配置最简单的做法就是直接在控制台上通过界面创建

    如果你不想通过界面进行创建,那么也可以使用命令行的模式完成:rabbitmqctl.
    cd D:devRabbitMQ Server abbitmq_server-3.8.5sbin abbitmqctl

    3.2、那么随后如果要想在项目之中去使用虚拟主机,则要在链接处进行配置:

    // vhost_lynch、/vhost_lynch为两个不同的虚拟主机
    factory.setVirtualHost("/vhost_lynch");
    factory.setUsername("lynch");
    factory.setPassword("lynch");


    使用虚拟主机最大好处可以区分不同用户的操作空间。

  • 相关阅读:
    【打印】windows打印控件,Lodop.js介绍
    【MySQL】MySQL查询数据库各表的行数
    【MySQL】MySQL中查询出数据表中存在重复的值list
    【php】php5.0以上,instanceof 用法
    日期转换:Cannot format given Object as a Date (SimpleDateFormat的parse和format)
    Groovy 正则表达式 匹配点号
    什么是开发框架
    SoapUI 增大使用内存
    Groovy API link
    Groovy 跳出each循环
  • 原文地址:https://www.cnblogs.com/linjiqin/p/13246567.html
Copyright © 2020-2023  润新知