美文网首页
2.rabbitmq简单模式

2.rabbitmq简单模式

作者: 指尖架构141319 | 来源:发表于2019-07-25 16:36 被阅读0次

1.介绍

image.png
  • P:消息的生产者
  • C:消息的消费者
  • 红色:队列

2.撸代码

  • 倒入依赖包
<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
   <version>3.4.1</version>
</dependency>
  • 获取MQ的连接
package com.zpc.rabbitmq.util;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;

public class ConnectionUtil {

    public static Connection getConnection() throws Exception {
        //定义连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //设置服务地址
        factory.setHost("localhost");
        //端口
        factory.setPort(5672);
        //设置账号信息,用户名、密码、vhost
        factory.setVirtualHost("testhost");
        factory.setUsername("admin");
        factory.setPassword("admin");
        // 通过工程获取连接
        Connection connection = factory.newConnection();
        return connection;
    }
}
  • 生产者发送消息到队列
package com.zpc.rabbitmq.simple;
import com.zpc.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

public class Send {
    private final static String QUEUE_NAME = "q_test_01";
    public static void main(String[] argv) throws Exception {
        // 获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();
        // 从连接中创建通道
        Channel channel = connection.createChannel();
        // 声明(创建)队列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        // 消息内容
        String message = "Hello World!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println(" [x] Sent '" + message + "'");
        //关闭通道和连接
        channel.close();
        connection.close();
    }
}
image.png image.png
  • 消费者从队列中获取消息
package com.zpc.rabbitmq.simple;
import com.zpc.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.QueueingConsumer;

public class Recv {
    private final static String QUEUE_NAME = "q_test_01";
    public static void main(String[] argv) throws Exception {
        // 获取到连接以及mq通道
        Connection connection = ConnectionUtil.getConnection();
        // 从连接中创建通道
        Channel channel = connection.createChannel();
        // 声明队列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        // 定义队列的消费者
        QueueingConsumer consumer = new QueueingConsumer(channel);
        // 监听队列
        channel.basicConsume(QUEUE_NAME, true, consumer);
        // 获取消息
        while (true) {
            QueueingConsumer.Delivery delivery = consumer.nextDelivery();
            String message = new String(delivery.getBody());
            System.out.println(" [x] Received '" + message + "'");
        }
    }
}

相关文章

  • 2.rabbitmq简单模式

    1.介绍 P:消息的生产者 C:消息的消费者 红色:队列 2.撸代码 倒入依赖包 获取MQ的连接 生产者发送消息到...

  • 2.RabbitMq入门

    1.rabbitMQ模型架构 Producer:生产者,投递消息的一方。即ClientA和ClientB 生产者创...

  • rabbitmq在Linux下安装

    1.安装Erlang 创建yum源 添加如下内容 安装Erlang 安装 socat 2.RabbitMQ 安装 ...

  • RabbitMQ扫盲

    本文目录: 1.RabbitMQ 简介2.RabbitMQ 应用场景3.RabbitMQ 系统架构4.Rabbit...

  • RabbitMQ

    1 常见MQ比较 2.RabbitMQ介绍2.1 介绍2.2 AMQP协议2.3 AMQP核心概念2.4 Rabb...

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 2.RabbitMQ运行流程

    文章参考:Rabbit实战指南 交换机的类型 fanout它会把所有发送到该交换机的消息路由到所有与该交换机绑定的...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • logstash的rabbitmq配置

    系统ubuntu16.04 1.elk的搭建 2.rabbitmq的安装与配置 3.修改logstash配置文件 ...

网友评论

      本文标题:2.rabbitmq简单模式

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