96SEO 2026-02-19 11:16 0
Message(s1.getBytes(StandardCharsets.UTF_8));message.getMessageProperties().setExpiration(10000);RabbitTemplate.convertAndSend(Constants.TTL_EXCHANGE,ttl,message);return

我们来看现象我这里设置过期时间为10s按理说到达队列后如果10s钟还没有被消费掉就会自动过期
如果我们不设置TTL就表示消息不会过期如果设置为0的化就表示除非此时可以直接将消息给消费者否者就会被丢弃
设置队列的TTL是比较简单的但是注意我们队列如果存在的话我们是不可以直接改代码然后更改队列的配置信息的同时交换机也是这样如果我们想改可以再声明个队列或者把队列先删了再创建此时队列上的消息会丢失
设置队列过期时间只需要在队列上配置ttl属性就可以我这里设置了5s
设置消息TTL的方法一旦消息过期且不是队列中第一个消息消息并不会立即删除而是在要发送给消费者之前进行判定如果过期了再删
本质上是为了提高性能因为设置队列的过期时间他们消息的最长存在时间就是队列的过期时间所有消息的存在时间都小于等于队列过期时间所以此时队列中已过期的元素大部分都在队列头部RabbitMQ只需要定期从队头开始扫描是否有过期消息即可
而设置消息TTL每条消息的过期时间都不同如果想要删除所有过期时间就需要扫描整个队列很影响性能所以不如等到用到了此消息再判定是否过期如果过期了再删除
死信就是因为一些原因包括消息过期消息被拒绝接收队列达到最大长度无法被消费的消息。
那既然有这些无法被处理的信息那一定就有存储他们的队列有队列就要有交换机那么这个队列就叫做死信队列DLQ这个交换机就叫死信交换机DLX
消息变成死信后会被发送到死信交换机然后由死信交换机绑定到死信队列中
首先我们要声明一个死信队列和死信交换机进行绑定哪至于正常的队列我们就用刚刚的TTL为5的队列吧
ExchangeBuilder.directExchange(Constants.TTL_EXCHANGE).durable(true).build();}Bean(ttlQueue)public
QueueBuilder.durable(Constants.TTL_QUEUE).ttl(5000).deadLetterExchange(Constants.DEAD_EXCHANGE).deadLetterRoutingKey(dead).build();}Bean(ttlBind)public
ackExchange,Qualifier(ttlQueue)
BindingBuilder.bind(queue).to(ackExchange).with(ttl).noargs();}Bean(deadExchange)public
ExchangeBuilder.directExchange(Constants.DEAD_EXCHANGE).durable(true).build();}Bean(deadQueue)public
QueueBuilder.durable(Constants.DEAD_QUEUE).build();}Bean(deadBind)public
deadBind(Qualifier(deadExchange)
ackExchange,Qualifier(deadQueue)
BindingBuilder.bind(queue).to(ackExchange).with(dead).noargs();}
Tagmessage.getMessageProperties().getDeliveryTag();try
//模拟失败channel.basicAck(Tag,false);System.out.println(处理完成);}catch
e){channel.basicReject(Tag,false);}}
QueueBuilder.durable(Constants.TTL_QUEUE).ttl(5000).deadLetterExchange(Constants.DEAD_EXCHANGE).deadLetterRoutingKey(dead).maxLength(5l).build();}
比如我们用户支付订单支付系统会给我们订单系统返回当前订单的支付状态
为了保障支付信息不丢失需要使用死信队列机制当消息消费异常时会放到死信队列中有可能存在用户支付但是消息没有被消费或者异常拒绝的情况此时我们放到死信队列中再对这个数据进行处理可能是人工确认
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback