栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

rabbitMQ使用java发送者和消费者

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

rabbitMQ使用java发送者和消费者

rabbitMQ使用java发送者和消费者 发送者
  • 创建maven项目,添加pom依赖
        
            com.rabbitmq
            amqp-client
            5.8.0
        
        
            commons-io
            commons-io
            2.6
        
  • java代码
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {
    //队列名称
    public static final String QUEUE_NAME = "hello";
    //发消息
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建一个链接工厂
        ConnectionFactory factory =  new ConnectionFactory();
        //工厂ip 链接mQ队列
        factory.setHost("xxx.xxx.xxx.xxx");
        //用户名
        factory.setUsername("root");
        //密码
        factory.setPassword("root");
        //创建链接
        Connection connection = factory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();
        
        channel.queueDeclare(QUEUE_NAME,true,false,false,null);
        //发消息
        String message = "hello world";
        
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("消息发送完毕");
    }
}

  • 运行结果
    -

  • 如果用云服务器记得打开5672端口
  • 如果报错
  • (Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method(reply-code=530, reply-text=NOT_ALLOWED - access to vhost ‘/’ refused for user ‘root’, class-id=10, method-id=40))
  • 是因为权限问题
消费者
  • java代码部分
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Consumer {
    //队列名称
    public static final String QUEUE_NAME = "hello";
    //接受消息
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建连接工厂
        ConnectionFactory factory =  new ConnectionFactory();
        //工厂ip 链接mQ队列
        factory.setHost("124.220.3.19");
        //用户名
        factory.setUsername("root");
        //密码
        factory.setPassword("root");
        //创建链接
        Connection connection = factory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();
        //声明_接手消息
        DeliverCallback deliverCallback = (consumerTag,message) ->{
            System.out.println(new String(message.getBody()));
        };
        //取消消息时的回调
        CancelCallback cancelCallback = consumerTag ->{
            System.out.println("消费消息被中断");
        };
        
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
    }
}

  • 结果图
  • 这个文章对应链接: 尚硅谷RabbitMQ教程 P14 P15
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1039944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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