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

建设旅游网站财务分析商业网站的建设流程

建设旅游网站财务分析,商业网站的建设流程,国外平面设计欣赏网站,wordpress站内信群发1、简述 在支付系统中#xff0c;订单支付的超时自动撤销是一个非常常见的业务场景。通常用户未在规定时间内完成支付#xff0c;系统会自动取消订单#xff0c;释放相应的资源。本文将通过利用 RabbitMQ 的 死信队列#xff08;Dead Letter Queue, DLQ#xff09;来实现…1、简述 在支付系统中订单支付的超时自动撤销是一个非常常见的业务场景。通常用户未在规定时间内完成支付系统会自动取消订单释放相应的资源。本文将通过利用 RabbitMQ 的 死信队列Dead Letter Queue, DLQ来实现支付超时自动撤销功能并详细讲解如何在 Java 中进行实现。 2、什么是死信队列 死信队列是 RabbitMQ 中的一个重要功能当消息在某个队列中变成“死信”时可以被发送到另一个特殊的队列这个队列就是死信队列。消息变成死信的情况有三种 消息被拒绝basic.reject 或 basic.nack并且 requeuefalse。消息的 TTLTime to Live过期。队列达到最大长度无法再存入新消息。 通过死信队列我们可以处理一些特殊的业务逻辑例如订单支付超时自动撤销。 3、实现过程 我们将为每个新创建的支付订单设置一个超时时间例如 30 分钟在订单支付的过程中将订单的消息发送到 RabbitMQ。消息在 RabbitMQ 中设置一定的 TTL生存时间。如果用户在超时时间内完成支付消息会被正常处理如果超时未支付消息会成为“死信”被转移到死信队列从而触发订单撤销的逻辑。 3.1 环境准备 首先在 pom.xml 中添加 RabbitMQ 相关依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId /dependency3.2 RabbitMQ 配置 在 application.yml 中添加 RabbitMQ 的连接配置 spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest3.3 配置普通队列和死信队列 我们需要配置两个队列一个是正常的支付订单队列另一个是死信队列。 支付订单队列用于接收支付订单的消息。死信队列接收从支付订单队列中转移过来的超时未处理的消息。 import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class RabbitMQConfig {// 正常交换机Beanpublic DirectExchange orderExchange() {return new DirectExchange(order-exchange);}// 死信交换机Beanpublic DirectExchange deadLetterExchange() {return new DirectExchange(dead-letter-exchange);}// 正常队列Beanpublic Queue orderQueue() {return QueueBuilder.durable(order-queue).withArgument(x-dead-letter-exchange, dead-letter-exchange) // 绑定死信交换机.withArgument(x-dead-letter-routing-key, dead-letter-routing-key) // 死信路由键.withArgument(x-message-ttl, 1800000) // 消息的TTL30分钟.build();}// 死信队列Beanpublic Queue deadLetterQueue() {return QueueBuilder.durable(dead-letter-queue).build();}// 绑定正常队列和交换机Beanpublic Binding orderBinding(Queue orderQueue, DirectExchange orderExchange) {return BindingBuilder.bind(orderQueue).to(orderExchange).with(order-routing-key);}// 绑定死信队列和死信交换机Beanpublic Binding deadLetterBinding(Queue deadLetterQueue, DirectExchange deadLetterExchange) {return BindingBuilder.bind(deadLetterQueue).to(deadLetterExchange).with(dead-letter-routing-key);} }3.4 发送订单支付消息 在订单创建时我们将消息发送到 RabbitMQ设置 TTL超时时间 import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class OrderService {Autowiredprivate RabbitTemplate rabbitTemplate;public void createOrder(String orderId) {// 模拟创建订单的逻辑System.out.println(订单创建成功订单ID orderId);// 发送订单消息到RabbitMQrabbitTemplate.convertAndSend(order-exchange, order-routing-key, orderId);System.out.println(订单消息已发送等待支付超时或支付完成处理...);} }3.5 监听死信队列实现超时自动撤销订单 当订单超时未支付消息将转移到死信队列我们通过监听死信队列实现订单撤销逻辑 import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;Component public class DeadLetterQueueListener {RabbitListener(queues dead-letter-queue)public void handleExpiredOrder(String orderId) {// 处理超时订单撤销的逻辑System.out.println(订单支付超时自动撤销订单订单ID orderId);// TODO: 更新数据库订单状态为已取消} }4、总结 通过使用 RabbitMQ 的死信队列我们可以轻松实现支付超时自动撤销的功能。具体流程如下 创建订单时将订单消息发送到 RabbitMQ并为消息设置 TTL。如果用户在规定时间内完成支付系统处理消息订单正常完成。如果消息在 TTL 时间内未被处理消息进入死信队列触发自动撤销逻辑。 利用 RabbitMQ 死信队列可以确保超时订单得到及时处理避免资源浪费同时还能保证系统的高并发处理能力。 这套方案可以扩展应用于任何有类似超时要求的业务场景如购物车超时、订单确认超时等。
http://www.hkea.cn/news/14343135/

相关文章:

  • 网站 单页wordpress怎么入驻写模板
  • 龙华做网站多少钱个人网站免费制作平台
  • 网站介绍怎么写范文个人网站备案简介怎么写
  • 邹城建网站苏州网站建设设计制作公司怎么样
  • 网站蜘蛛爬行统计网站建设核电
  • 运城做网站哪家公司好白山住房与城乡建设局网站
  • 找个人给我做电影网站效果好网站建设哪家好
  • 大理网站建设网站建设一个类引用另一个类的方法
  • 兰州网站建设怎么选网页设计图片轮播的代码
  • 集图网seo优化排名怎么做
  • 网站获取用户wordpress新建页面
  • 美仑-专门做服装的网站wordpress的特点()
  • 网站通栏代码新品发布会策划
  • 做网站什么内容吸引人深圳做棋牌网站建设哪家好
  • 网站建设html5作品济南网站怎么做seo
  • 网站换域名有没有影响赣州91人才网赣州招聘
  • 做资源共享网站企业网站建设要求标准说明
  • 宿州品牌网站建设公司制作网页用什么进行页面布局
  • 网站改版重新备案推动高质量发展的必然要求
  • 肇庆住房和城乡建设局网站天津建设工程招标网
  • 网站建设公司 长春阿里巴巴网站维护怎么做
  • wordpress清理网站缓存app和手机网站的区别
  • 51做网站建设企业官网菏泽汽车网站建设
  • 网站开发环境配置百度地图推广
  • 济南建设网站企业收费注册城乡规划师协会
  • 互联网官方网站企业营销型网站建设图片
  • 大连seo建站宝尊代运营一年要多少钱
  • 网站开发工具的功能包括哪些优化wordpress速度
  • 电子商务网站开发流程wordpress统计插件
  • 私募股权基金网站建设全国网站设计排名