RabbitMQ进行简单的消息发送和消费
RabbitMQ进行简单的消息发送和消费在完成该功能之前,需要在虚拟机上下载安装rabbitmq,并且通过网页可以访问到rabbitmq server,可以参考我的上篇文章linux上下载以及安装rabbitmq1.不管使用什么组件,第一步都是导入相关依赖<dependencies><dependency><groupId>org.projectlombok&l
·
RabbitMQ进行简单的消息发送和消费
在完成该功能之前,需要在虚拟机上下载安装rabbitmq,并且通过网页可以访问到rabbitmq server,可以参考我的上篇文章linux上下载以及安装rabbitmq
1.不管使用什么组件,第一步都是导入相关依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.12.0</version>
</dependency>
</dependencies>
这里导入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实现简单的消息发送和消费就完成了。
更多推荐
已为社区贡献2条内容
所有评论(0)