rabbitmq消费者与生产者

这篇具有很好参考价值的文章主要介绍了rabbitmq消费者与生产者。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在第一次学习rabbitmq的时候,遇到了许多不懂得

mq消费者和生产者,java-rabbitmq,rabbitmq,分布式,Powered by 金山文档

第一步导包

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.14.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>

第二步新增生产者

public class Producer {
    //队列名称
    public static final String QUEUE_NAME="hello";
    //发消息
    public static void main(String[] args) throws Exception {
        //创建一个连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //工厂的ip连接RabbitMQ队列
        connectionFactory.setHost("110.12.247.134");
        //端口号
        connectionFactory.setPort(5672);
        connectionFactory.setVirtualHost("my_vhost");  //填写自己
        //用户名  填写自己的
        connectionFactory.setUsername("admin");
        //密码   填写自己的
        connectionFactory.setPassword("admin");
        Connection connection = connectionFactory.newConnection();
        System.out.println(connection);
        //获取信道
        Channel channel = connection.createChannel();
        /*生成一个队列
        * 1.队列的名称
        * 2.队列里面的消息是否持久化(磁盘) 默认情况下消息存储在内存当中
        * 3.该队列是否只供一个消费者进行消费,是否进行消费共享,false只能供一个消费者,true提供给所有消费者
        * 4.是否自动删除  最后一个消费者断开连接以后 该队列是否自动删除 true自动删除 false 不自动删除
        * 5.其他参数
        * */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发消息
        String message="Hello World";
        /**发送一个消费
         * 1.发送到那个交换机
         * 2.路由的key值是哪个  本次是队列的名称
         * 3.其他参数信息
         * 4.发送消息的消息体
         * */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("消息发送完毕");
    }
}

在这里中:

connectionFactory.setVirtualHost("my_vhost");//填写自己的队列名称,如果你的为”/“则填写''/''

mq消费者和生产者,java-rabbitmq,rabbitmq,分布式,Powered by 金山文档

第三步新增消费者

public class Consumer {
    //队列名称
    public static final String QUEUE_NAME="hello";

    public static void main(String[] args) throws Exception {
        //创建一个连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //工厂的ip连接RabbitMQ队列
        connectionFactory.setHost("110.42.247.134");
        //端口号
        connectionFactory.setPort(5672);
        connectionFactory.setVirtualHost("my_vhost");
        //用户名
        connectionFactory.setUsername("admin");
        //密码
        connectionFactory.setPassword("admin");
        Connection connection = connectionFactory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();
        //声明  接受消息
        DeliverCallback deliverCallback=(consumerTag,messagee) -> {
            System.out.println(new String(messagee.getBody()));
        };
        //取消消息时的回调
        CancelCallback cancelCallback=(message)->{
            System.out.println("消费消息被中断");
        };
        //消费者接受消息
        /*消费者消费消息
        *1.消费那个队列
        * 2.消费成功后是否要自动应答 true 代表的是自动应答  false代表的是手动应答
        * 3.消费者未成功消费的回调
        * 4.消费者取消消费的回调
        * */
        channel.basicConsume(QUEUE_NAME,true, deliverCallback, cancelCallback);
    }
}

消息获取成功

mq消费者和生产者,java-rabbitmq,rabbitmq,分布式,Powered by 金山文档

注意如果你用的云服务器需要打开这两个端口 5672 15672

mq消费者和生产者,java-rabbitmq,rabbitmq,分布式,Powered by 金山文档

如果你使用的虚拟机则你需要关闭防火墙文章来源地址https://www.toymoban.com/news/detail-671533.html

到了这里,关于rabbitmq消费者与生产者的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包