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

RabbitMQ进行简单的消息发送和消费

RabbitMQ进行简单的消息发送和消费

RabbitMQ进行简单的消息发送和消费

在完成该功能之前,需要在虚拟机上下载安装rabbitmq,并且通过网页可以访问到rabbitmq server,可以参考我的上篇文章linux上下载以及安装rabbitmq

1.不管使用什么组件,第一步都是导入相关依赖
	
	
		org.projectlombok
		lombok
	
    
        com.rabbitmq
        amqp-client
        5.12.0
    

这里导入lombok依赖,是为了等下可以输出一些日志消息,如果不使用,可以不用导入相关依赖,不过为了方便后面调试,最好还是导入。

2.先写生产者(Producer)代码
@Slf4j
public class ExerciseP {
    public static String QUEUE_NAME = "hello_world";
    public static void main(String[] args) throws IOException, TimeoutException {
        //new a connectionFactory
        ConnectionFactory factory = new ConnectionFactory();
        //host address
        factory.setHost(You host address);
        //rabbitmq's username
        factory.setUsername(username);
        //rabbitmq's password
        factory.setPassword(password);
        //new connection
        Connection connection = factory.newConnection();
        //new channel
        Channel channel = connection.createChannel();
        //declare a queue
        channel.queueDeclare(QUEUE_NAME,true,false,false,null);
        String message = "hello world";
        //1st param exchange name
        //2nd routing key
        //3rd basicProperties
        //4th message (requires byte data)
        //publish a message
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        log.info("消息发送成功!");
    }

显示消息发送成功,同时在rabbitmq中也可以看到消息

显示确实发送了 一条消息到rabbitmq server中

3.消费者代码(Consumer)
@Slf4j
public class ExerciseC {
    public static final String QUEUE_NAME = "hello_world";

    public static void main(String[] args) throws IOException, TimeoutException {
        //新建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //连接工厂设置主机,用户,密码,连接上rabbitmq  Server
        factory.setHost(You host address);
        factory.setUsername(username);
        factory.setPassword(password);
        //新建一个连接
        Connection connection = factory.newConnection();
        //新建一个信道
        Channel channel = connection.createChannel();

        //消息到达回调函数
        DeliverCallback deliverCallback = (consumerTag,message)->{
            log.info("消息已经接收到{}",new String(message.getBody(), StandardCharsets.UTF_8));
        };
        CancelCallback cancelCallback = (consumerTag)->{
          log.info("消息发送被中断!");
        };
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);

    }
}

rabbitmq server显示队列中的消息被消费了,idea控制台中也打印出了相关消息。
到此为止,使用rabbitmq实现简单的消息发送和消费就完成了。

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

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

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