All Projects → TaXueWWL → order-charge-notify

TaXueWWL / order-charge-notify

Licence: Apache-2.0 License
模拟电商下单->订单处理->订单结果通知的完整流程,基于RocketMQ进行实现

Programming Languages

java
68154 projects - #9 most used programming language
TSQL
950 projects

Projects that are alternatives of or similar to order-charge-notify

Onemall
芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
Stars: ✭ 5,312 (+11447.83%)
Mutual labels:  springboot, rocketmq
Xc Spring Cloud Alibaba
spring cloud alibaba(2.2.1最新版)+nacos+dubbo+gateWay+sentinel+rocketmq+(pgsql/mysql8.0的json支持)+ignite集成可用于docker分布式框架+分布式自动化任务+mybatis多数据源+seate+ shardingSphere分布式分库事务解决方案
Stars: ✭ 131 (+184.78%)
Mutual labels:  springboot, rocketmq
Taoshop
开源电子商务项目,SpringBoot+Dubbo技术栈实现微服务,实现一款分布式集群的电商系统. 项目releases链接:https://github.com/u014427391/taoshop/releases (开发中...)
Stars: ✭ 491 (+967.39%)
Mutual labels:  springboot, rocketmq
weweibuy-framework
基于Springboot 封装的基础组件, 包括: Http请求响应日志,日志脱敏,APM, 加解密,签名(AES,BCrypt,RSA,JWT),数据库脱敏,报文脱敏,下滑线风格URL传参,统一异常处理,feign mock,feign日志,feign报文风格转换,跨应用异常上抛,自动补偿组件,幂等组件,RocketMq客户端
Stars: ✭ 24 (-47.83%)
Mutual labels:  springboot, rocketmq
taotao-cloud-project
微服务开发脚手架,包括大数据模块、微服务模块、前端模块。基于Spring Cloud Alibaba的微服务架构。提供技术框架的基础能力的封装,减少开发工作,只关注业务,包含了工作以来的工作总结和技术沉淀
Stars: ✭ 76 (+65.22%)
Mutual labels:  springboot, rocketmq
Newbie Plan
📚 Java 技术体系面试指南 , 旨在锻炼学习方法论的技术指南 🚀 数学,算法,基础框架,原理剖析,职业感悟,技术面试
Stars: ✭ 412 (+795.65%)
Mutual labels:  springboot, rocketmq
Myth
Reliable messages resolve distributed transactions
Stars: ✭ 1,470 (+3095.65%)
Mutual labels:  springboot, rocketmq
Tutorial
Java全栈知识架构体系总结
Stars: ✭ 407 (+784.78%)
Mutual labels:  springboot, rocketmq
incubator-rocketmq
带中文代码注释 Mirror of Apache RocketMQ 源码解析:http://www.iocoder.cn/categories/RocketMQ/?github
Stars: ✭ 343 (+645.65%)
Mutual labels:  notify, rocketmq
robert
基于SpringCloud的企业级微服务多租户系统、多语言的脚手架, 代码组件化、高内聚低耦合,代码简介,注释丰富容易上手,该项目包括用于开发分布式应用程序服务的必要组件,支持多应用程序访问,并使开发人员可以轻松地使用Spring Cloud编程模型来开发分布式应用程序服务。
Stars: ✭ 45 (-2.17%)
Mutual labels:  springboot, rocketmq
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-67.39%)
Mutual labels:  springboot, rocketmq
SpringBootIntegration
SpringBoot集成学习项目 SpringBoot Integration
Stars: ✭ 20 (-56.52%)
Mutual labels:  springboot, rocketmq
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (+117.39%)
Mutual labels:  springboot, rocketmq
Seckill Rocketmq
seckill-rocketmq-基于RocketMQ-电商高并发场景实战
Stars: ✭ 133 (+189.13%)
Mutual labels:  springboot, rocketmq
Java-CS-Record
记录准备春招实习过程中,学习与复习的知识(模块化整理,非面试题速成)。注:暂停更新,后续请移步博客
Stars: ✭ 73 (+58.7%)
Mutual labels:  springboot, rocketmq
compose-pay
🔱 HA distributed payment gateway. 高可用分布式支付网关/支付前置/支付系统/微信/支付宝
Stars: ✭ 21 (-54.35%)
Mutual labels:  springboot, rocketmq
release-notify-action
GitHub Action that triggers e-mails with release notes when these are created
Stars: ✭ 64 (+39.13%)
Mutual labels:  notify
cc-project-vue
一个基于vue3.0+antd+less+spring boot +mybatis+mysql+maven基础权限管理平台
Stars: ✭ 20 (-56.52%)
Mutual labels:  springboot
spring-boot-microservice-best-practices
Best practices and integrations available for Spring Boot based Microservice in a single repository.
Stars: ✭ 139 (+202.17%)
Mutual labels:  springboot
book-ms-interface
⚡ 微图书后端接口工程,主要使用spring-boot2.x、shiro开发,前端采用 vue.js、element-ui
Stars: ✭ 86 (+86.96%)
Mutual labels:  springboot

Readme

场景为:示例项目以客户端模拟下单成功,下单成功后服务端回调客户端修改订单状态场景进行讲解。 即:模拟下单并处理异步通知

主要技术

消息队列(RocketMQ): 作用,长流程异步化,提升吞吐量,削峰填谷
    |-普通消息的发布及订阅
    |-事务消息的发布及订阅
线程池 
    |-事务消息回查
SpringBoot
    |-配置资源预加载
RestTemplate
    |-application/json格式数据的发送
    |-application/x-www-form-urlencoded格式数据的发送

思路

业务流程图如下

项目流程图

模块描述

模块 说明
order-charge-gateway-merchant 商户收单网关,2C业务,对用户提供下单接口;提供对下单平台的充值回调接口
order-charge-gateway-server 核心收单平台,2B业务,进行业务正式下单,下单完成后投递通知消息到MQ
order-charge-gateway-notify 核心通知平台,消费通知消息发送通知到order-charge-gateway-merchant的回调接口
order-charge-message-protocol 消息协议封装
order-charge-sdk HTTP下单接口sdk及通知sdk
script 数据库初始化脚本

业务描述

  1. 用户访问第三方售票网关,进行购票操作。用户发起下单操作,执行支付转账操作

     扣减用户账户,增加商户账户金额
    
  2. 转账完成之后,商户发起下单操作,售票平台进行下单操作及扣款操作,(此处为讲解重点-- 事务消息,分布式事务场景)返回订单提交成功

  3. 售票平台下单扣款完成后,认为售票成功,则返回结果通知给第三方售票网关(此处为讲解重点-- 普通消息,异步通知

  4. 第三方售票网关自行给用户通知即可,未实现

注意:商品信息直接在初始化的时候记载到第三方售票网关和售票平台的缓存中即可。

说明

下单与扣款通过事务消息保证一致性,保证成功率

通知过程通过MQ进行异步解耦,使用普通消息即可,因为通知过程本身是为了最大努力送达,属于最终一致性的范畴,不要求数据的强一致性。

如果通知达到上限阈值,则停止通知,等待商户侧发起主动查询即可。通过通知回调+主动查询,能够在跨网络的交易场景下,实现端与端之间的订单状态的最终一致。

在平台内部,跨服务之间的分布式事务,通过RMQ的事务消息得到保证,事务消息原理可简单介绍。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].