当前位置: 首页 > wzjs >正文

建设银行租房网站湖北南安住房与城乡建设部网站

建设银行租房网站湖北,南安住房与城乡建设部网站,手机兼职赚钱,濮阳建设网站RabbitMQ 核心原理与Spring Boot整合实战 一、RabbitMQ 核心架构 1.1 AMQP 协议模型 组件作用描述Producer消息生产者,发送消息到ExchangeConsumer消息消费者,从队列获取消息处理Exchange接收消息并根据规则路由到队列Queue存储消息的缓冲区Binding定…

RabbitMQ 核心原理与Spring Boot整合实战

一、RabbitMQ 核心架构

1.1 AMQP 协议模型

组件作用描述
Producer消息生产者,发送消息到Exchange
Consumer消息消费者,从队列获取消息处理
Exchange接收消息并根据规则路由到队列
Queue存储消息的缓冲区
Binding定义Exchange和Queue之间的关系规则

1.2 交换机类型对比

类型路由规则典型应用场景
Direct精确匹配Routing Key点对点精确路由
Fanout广播到所有绑定队列发布/订阅模式
Topic通配符匹配Routing Key多条件复杂路由
Headers根据Header属性匹配非路由键匹配场景

二、Spring Boot 整合配置

2.1 基础依赖配置

<!-- pom.xml -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.2 配置文件示例

# application.yml
spring:rabbitmq:host: 127.0.0.1port: 5672username: guestpassword: guestvirtual-host: /listener:simple:prefetch: 10 # 消费者预取数量concurrency: 5 # 最小消费者数max-concurrency: 10 # 最大消费者数

三、消息生产消费实战

3.1 生产者配置模板

@Configuration
public class RabbitProducerConfig {// 声明直连交换机@Beanpublic DirectExchange orderExchange() {return new DirectExchange("order.exchange");}// 声明持久化队列@Beanpublic Queue orderQueue() {return new Queue("order.queue", true);}// 绑定队列到交换机@Beanpublic Binding orderBinding() {return BindingBuilder.bind(orderQueue()).to(orderExchange()).with("order.routingKey");}
}@Component
public class OrderProducer {@Autowiredprivate RabbitTemplate rabbitTemplate;public void sendOrder(Order order) {rabbitTemplate.convertAndSend("order.exchange","order.routingKey",order,message -> {message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);return message;});}
}

3.2 消费者监听实现

@Component
public class OrderConsumer {// 注解式监听方法@RabbitListener(queues = "order.queue")@RabbitHandlerpublic void processOrder(Order order, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws IOException {try {// 业务处理逻辑handleOrder(order);channel.basicAck(tag, false);} catch (Exception e) {channel.basicNack(tag, false, true); // 重新入队}}// 手动确认示例@RabbitListener(queues = "dead.letter.queue")public void handleDeadLetter(Message message, Channel channel) throws IOException {// 处理死信消息channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);}
}

四、高级消息模式

4.1 延迟消息实现

// 配置死信交换机
@Bean
public DirectExchange delayExchange() {Map<String, Object> args = new HashMap<>();args.put("x-delayed-type", "direct");return new DirectExchange("delay.exchange", true, false, args);
}// 发送延迟消息
public void sendDelayMessage(String message, int delayTime) {rabbitTemplate.convertAndSend("delay.exchange","delay.routingKey",message,msg -> {msg.getMessageProperties().setHeader("x-delay", delayTime);return msg;});
}

4.2 消息可靠性保证

Producer Broker Disk Consumer 发送消息(Confirm模式) 确认收到 持久化消息 投递消息 手动ACK 删除消息 Producer Broker Disk Consumer

五、监控与维护

5.1 常用监控指标

指标名称描述健康阈值
queue_messages队列中待处理消息数<1000
message_ack_rate消息确认率>99%
consumer_utilization消费者利用率40%-80%
deliver_get每秒投递消息数根据硬件配置调整

5.2 管理命令示例

# 查看队列状态
rabbitmqctl list_queues name messages_ready messages_unacknowledged# 查看消费者信息
rabbitmqctl list_consumers# 清除队列
rabbitmqctl purge_queue order.queue

六、最佳实践指南

6.1 消息设计规范

  1. 消息体大小:单条消息建议不超过1MB
  2. 序列化格式:优先使用JSON格式
  3. 幂等处理:消费端需要保证重复消息处理安全
  4. 过期时间:设置合理的TTL(Time-To-Live)

6.2 集群配置建议

客户端
HAProxy
节点1
节点2
节点3
镜像队列

扩展学习

  • RabbitMQ官方文档
  • AMQP协议规范

http://www.dtcms.com/wzjs/740623.html

相关文章:

  • 不用建网站怎么做淘宝客vi设计案例网站
  • 南京网站开发就业培训课程姜堰区区网站建设
  • 宁国做网站的公司官网图片
  • wordpress不显示最新文章百度seo是啥意思
  • 创业网站怎么做的网上做室内设计好的网站
  • 重庆的电子商务网站linux 做网站用哪个版本
  • 摄影公司网站开发网站开发语言怎么样
  • 国际网站怎么注册免费的企业网站推广的方法有( )
  • 南昌网站建设多少钱可以做锚文本链接的网站
  • wordpress网站语言私域流量营销
  • 镇江专业网站建设制作专做农产品跨境的网站有
  • 重庆市建设工程信息网劳务资质查询网站怎么做外部优化
  • 网站使用费用网站美工要求
  • js代码 嵌入网站手机版网站seo怎么做
  • 网站如何修改后台密码凡客现在官网都找不到了
  • 表情包生成器在线制作网站中国建设局网站查询
  • 类似qq空间的网站网站建设过程中准备的工作
  • 网站左侧的导航是怎么做的怎么做网站站内搜索
  • 做星座网站wordpress中文购物主题
  • 天水 网站建设 招聘网站转化分析
  • 最漂亮网站上海网站建设穹拓
  • 合肥网站建站推广怎么将自己做的网站上线
  • 北京微信网站建设电话做钓鱼网站的公司
  • 建设银行忘记密码网站注册网站有什么用
  • 樟木头建网站的wordpress 云虚拟主机
  • 织梦网站字体大小山东菏泽建设银行网站
  • 网站建设技术服务税种分类seo技术优化技巧
  • php网站开发项目实战怎么做可以使网站跳转
  • 如何免费制作网站莱芜网站建设服务
  • 金华市网站建设公司在线教育平台