首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >消息中间件RabbitMQ系列,直连模式,实现利用代码从队列里面取出数据(四)

消息中间件RabbitMQ系列,直连模式,实现利用代码从队列里面取出数据(四)

作者头像
一写代码就开心
发布2020-11-20 14:47:19
发布2020-11-20 14:47:19
6640
举报
文章被收录于专栏:java和pythonjava和python

之前已经利用代码,将一些数据放到了队列里面,现在我们要实现利用代码从队列里面拿出数据。

代码语言:javascript
复制
public class Customer {

    public static void main(String[] args) throws IOException, TimeoutException {
        //        创建连接mq的连接工厂对象,这个是依赖里面的类,我们只需要拿过来创建对象就可以了
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置连接rabbitmq的ip
        connectionFactory.setHost("192.168.40.145");
//        设置端口号
        connectionFactory.setPort(5672);
//        设置连接的虚拟的主机
        connectionFactory.setVirtualHost("/ems");
//        设置访问虚拟主机的用户名和密码
        connectionFactory.setUsername("ems");
        connectionFactory.setPassword("123");
//        获取连接对象
        Connection connection = connectionFactory.newConnection();
//        创建通道
        Channel channel = connection.createChannel();
//        让通道和消息队列进行绑定
        channel.queueDeclare("hello",false,false,false,null);

        channel.basicConsume("hello",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)"+new String(body));
            }
        });

    }
}

记住,发送者是在测试类里面可以发送,但是接受者必须在main函数,也就是主函数里面,因为接受端有一个回调函数,要执行回调函数里面的代码,这样就变为多线程,在主函数里面,就会执行这个回调函数,在测试类里面不会,因为测试类里面执行完主的就结束了,没有时间执行回调函数。

获取完成之后,我们看队列里面的信息

队列里面就没有东西了,因为被消费端消费了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档