栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ实现收发消息

RabbitMQ实现收发消息

RabbitMQ实现收发消息 1 环境准备 1.1 安装Erlang

官方下载地址:http://www.erlang.org/downloads

注意:
在搭建RabbitMQ环境过程中,由于版本问题导致环境一直搭建不起来,以下是RabbitMQ与Erlang的版本对应关系

RabbitMQ版本Erlang最低要求Erlang最高要求
3.7.7 - 3.7.1220.3.x21.x
3.7.0 - 3.7.619.320.3.x
1.2 配置环境变量

1.3 安装RabbitMQ

官方下载地址:http://www.rabbitmq.com/download.html

2 安装RabbitMQ可视化并启动

1、使用命令:rabbitmq-plugins.bat enable rabbitmq_management
2、安装完成后关闭cmd窗口,重新打开,加载可视化插件
3、访问地址:http://localhost:15672/
4、默认用户名密码均为:guest



3 创建队列

1、访问:http://localhost:15672/
2、用户名密码均为guest
2、点击Queues
3、输入队列名点击添加
4、也可以自行添加用户,但是添加的用户许授权,否则无法登录

4 编写java代码 4.1 引入依赖

    com.rabbitmq
    amqp-client
    5.9.0

4.2 编写消息生产者

消息队列名称需要自行替换为上步骤添加的队列名

public void producer() throws IOException, TimeoutException {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setVirtualHost("/");
        factory.setHost("127.0.0.1");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        String message = "这是发送的消息:" + new Date();
        // HelloQueues为消息队列名称,需要在消息队列中存在
        channel.basicPublish("", "HelloQueues", null, message.getBytes(StandardCharsets.UTF_8));
        channel.close();
        connection.close();
}
4.3 编写消息消费者

消息队列名称需要自行替换为上步骤添加的队列名

public void consumer() throws IOException, TimeoutException {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setVirtualHost("/");
        factory.setHost("127.0.0.1");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        // HelloQueues为消息队列名称,需要在消息队列中存在
        channel.basicConsume("HelloQueues", true, new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("收到消息:" + new String(body, "utf-8"));
            }
        });
        System.in.read();
        channel.close();
        connection.close();
}
4.4 测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号