美文网首页
RabbitMQ的五种常用模式

RabbitMQ的五种常用模式

作者: JHMichael | 来源:发表于2019-03-14 16:39 被阅读0次

    RabbitMQ简单介绍

    • RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用,RabbitMQ是实现AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件的一种,主要是为了实现系统之间的双向解耦而实现的,下面的介绍都是基于windows安装与测试的,具体的介绍可以参考RabbitMQ官网:http://www.rabbitmq.com

    RabbitMQ安装

    • RabbitMQ windows安装:

    • 安装完成后,需要开启Web后台,进入rabbitmq安装目录中的sbin目录执行如下命令并重启服务:

      rabbitmq-plugins enable rabbitmq_management
      
    • rabbitmq默认的web后台端口为15672,rabbitMQ服务端口为5672,打开后台控制(localhost:15672),输入用户名密码,默认都是guest.登录后如下 后台控制器

    rabbitMQ用户以及主机配置:

    • 在后台进入Admin选项,如下: 用户管理
    • 将用户与密码输入,并点击Add user创建自己的用户,Tags根据需要设置,这里设置为Admin(这里user:test,pw:test),如下: 用户创建
    • 创建完后如下: 添加的用户
    • 设置主机,点击右侧的Virtual Host,并输入自己想要设置的主机地址,如: 添加主机
    • 添加后点击主机进入设置主机用户,点击Clear可以移除默认的guest用户,在User下拉列表中可以选择自己创建的用户并Set permission即可,如下: 主机权限设置
    • 添加完后可以发现虚拟主机的用户被更改,如下: 虚拟主机配置信息

    RabbitMQ的五种模式:

    • 具体可以参考官方文档:http://www.rabbitmq.com/getstarted.html

    • RabbitMQ依赖:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.1.3.RELEASE</version>
          <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.rabbit.mq</groupId>
        <artifactId>rabbitmq</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>rabbitmq</name>
        <description>Demo project for Spring Boot</description>
        <properties>
          <java.version>1.8</java.version>
        </properties>
        <dependencies>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
          </dependency>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
          </dependency>
          </dependencies>
        <build>
          <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
          </plugins>
        </build>
      </project>
      
    • rabbitMQ连接工具类:

      package com.rabbit.mq.utils;
      import com.rabbitmq.client.Connection;
      import com.rabbitmq.client.ConnectionFactory;
      public class RabbitMQUtils {
      public static Connection getConnection() throws Exception {
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("127.0.0.1");
            factory.setPort(5672);
            factory.setUsername("test");
            factory.setPassword("test");
            factory.setVirtualHost("/test");
            return factory.newConnection();
        }
      }
      
    • 一般模式(Simple)

      • 如图: image
      • 消息的发送者如下: Provider
      • 消息消费者: Consumer
      • 测试结果如下(注意需要先启动Provider,否则有可能找不到队列): result
    • 工作模式:

      • 如图: image
      • 发送端:
      • 接收端:
        • 接收端A
        • 接收端B:
    • 发布与订阅模式:

      • 如图: image
      • 发送端:
      • 接收端:
        • 消费A:
        • 消费B:
    • 路由模式:

      • 如图: image
      • 发送端:
        • 接收端:
          • 接收者A:
          • 接收者B:
    • 主题模式:

      • 如图: image
      • 提供者:
      • 消费端:
        • 消费端A:
        • 消费端B:
    • 第一次需要先启动提供端,否则会出现找不到交换机或队列的异常情况

    • 代码地址:https://github.com/duanjunhua/spring-boot/tree/master/rabbitmq

    相关文章

      网友评论

          本文标题:RabbitMQ的五种常用模式

          本文链接:https://www.haomeiwen.com/subject/pvtcmqtx.html