RabbitMQ-简单队列
模型
graph LR
生产者 -->id[queue]
id[queue]--> 消费者
获取连接
public static Connection getConnection() throws IOException, TimeoutException {
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("localhost");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("/vhost_ct");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
return connectionFactory.newConnection();
}
生产者Producer
public class Send {
private static final String QUEUE_NAME = "test_simple_queue";
public static void main(String[] a) throws IOException, TimeoutException {
//获取一个链接
Connection connection = ConnectionUtil.getConnection();
//从链接中获取一个通道
Channel channel = connection.createChannel();
//创建队列声明
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String msg = "hello_simple";
//发布
channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());
System.out.println("send:" + msg);
channel.close();
connection.close();
}
}
消费者 Consumer
public class Recv {
private static final String QUEUE_NAME = "test_simple_queue";
public static void main(String[] a) throws IOException, TimeoutException {
//获取一个链接
Connection connection = ConnectionUtil.getConnection();
//从链接中获取一个通道
Channel channel = connection.createChannel();
//定义队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
DefaultConsumer defaultConsumer = new DefaultConsumer(channel) {
//获取到达的消息
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte[] body) throws IOException {
String msg = new String(body, "utf-8");
System.out.println(msg);
}
};
//监听队列
channel.basicConsume(QUEUE_NAME, true, defaultConsumer);
}
}
不足之处
耦合性较高,生产者和消费者一一对应,修改队列名,生产者和消费者需同时修改
gogogo
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 本地部署 DeepSeek:小白也能轻松搞定!
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
2019-10-10 CURL命令
2019-10-10 跨域访问
2019-10-10 JSR-303