01_RabbitMQ【简单的消息队列】
2023-09-14 09:14:08 时间
RabbitMQ Tutorials — RabbitMQhttps://rabbitmq.com/getstarted.html1. 简单模式
P:消息的生产者;
C:消息的消费者;
红色框:消息队列;
2. 创建连接
public class ConnectionUtil {
public static void main(String[] args) throws IOException {
System.out.println(getConnection());
}
public static Connection getConnection() throws IOException {
//定义连接工厂
ConnectionFactory connectionFactory = new ConnectionFactory();
//设置服务地址
// connectionFactory.setHost("192.168.91.128");
//设置端口
connectionFactory.setPort(5672);
//设置账号信息:用户名、密码、vhost
connectionFactory.setUsername("lisi");
connectionFactory.setPassword("123456");
connectionFactory.setVirtualHost("/ls");
//通过工程获取连接
Connection connection = connectionFactory.newConnection();
return connection;
}
}
3. 生产者向队列中发送消息
/*
* 生产者
* */
public class Product {
public static String QUEUE_NAME = "simple";
public static void main(String[] args) throws IOException {
//获得连接
Connection connection = ConnectionUtil.getConnection();
//创建通道
Channel channel = connection.createChannel();
//声明(创建)队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
//消息内容
String message = "hello rabbit";
//发送消息
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
//关闭连接
channel.close();
connection.close();
}
}
4. 消费者
/*
* 消费者:接收消息
* */
public class Consumer {
public static String QUEUE_NAME = "simple";
public static void main(String[] args) throws IOException, InterruptedException {
//获得连接
Connection connection = ConnectionUtil.getConnection();
//创建通道
Channel channel = connection.createChannel();
//声明(创建)队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
//定义通道的消费者
QueueingConsumer queueingConsumer = new QueueingConsumer(channel);
//监听队列(消费消息)
channel.basicConsume(QUEUE_NAME, true, queueingConsumer);
//获得消息
while (true) {
QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();
String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" [x] Received '" + message + "'");
}
}
}
5. 访问浏览器
相关文章
- PHP消息队列实现及应用【学习与归纳】
- RabbitMQ模拟消息队列群发邮件
- 【说站】java RabbitMQ消息队列是什么
- 消息队列:第五章:RabbitMQ的使用
- 16-RabbitMQ高级特性-消费端的消息ACK与重回队列
- RabbitMQ——队列消息数
- 架构技术之分布式消息队列
- 消息队列RabbitMQ核心:交换机(路由、主题、发布订阅)
- 消息队列面试常问
- RabbitMQ消息队列入门及解决常见问题
- Redis 应用实践-消息队列
- MQ发送消息到队列的Java代码详解编程语言
- JavaScript中的消息提示框详解编程语言
- 实现使用Java实现Redis消息队列(redis消息队列java)
- 消息称网易云音乐最快于本周内寻求上市聆讯
- Linux 下的进程间通信:使用管道和消息队列
- 了解Linux中的msgmni——消息队列最大限制(linuxmsgmni)
- 调整Linux消息队列有效容量(linux消息队列大小)
- Linux安装RabbitMQ:快速、高效的消息系统部署(linux安装rabbitmq)
- 如何使用Linux删除消息队列(linux删除消息队列)
- tp6中使用Redis实现消息队列(tp6redis列队)
- 破解Redis的防止重复消息队列(redis防重队列)
- 者利用Redis队列实现多个消费者的同步消息处理(redis队列多个消费)
- 使用Redis实现高效消息队列入库(redis 消息队列入库)