微服务模式订单支付系统
应用技术: SpringBoot
Mybatis
Dubbo
RocketMQ
Zookeeper
MySQL
应用工具: Twitter-Snowflake
RestTemplate
注意事项:
1. mybatis 逆向工程数据表名字不能太通用,容易引起于系统表名冲突
正例: shop_user
反例: user
2. mybatis 逆向工程 *.xml文件生成是追加式添加,在重新生成 *.xml 时,建议删除原 *.xml
xml内容重复,会抛出异常:java.lang.IllegalArgumentException: Result Maps collection already contains
3. pojo类 需要继承Serializable,才可以使用dubboRPC通信
4. mapper接口 需要添加注解 @Mapper
5. service.impl 服务需要添加:
@Component :添加注解 'spring @Service' , 使用原因: 避免与dubbo @Service冲突
@Service(interfaceClass = xxxxxxService.class) :该 service 为dubbo service
6. application 需要添加Dubbo配置 @EnableDubboConfiguration
7. 微服务模式下 dubbo.protocol端口不能重复,否则启动报错
8. 库存回退和扣减均存在并发问题,解决:
方案1: 数据库乐观锁
方案2: MQ+数据库乐观锁
方案3: 引入分布式锁(Redis Zookeeper) (未使用)
9. 8中解决方案2存在库存不足时,需要通过MQ异步通知订单服务问题
10. RocketMQ分布式事务:
方案1: rocketmq-client (推荐)
方案2: rocketmq-spring-boot-starter(2.0.3) (事务有问题,未解决..)
方案2问题测试:
rocketMQTemplate.sendMessageInTransaction 方法发送的消息,
在继承RocketMQLocalTransactionListener的类下方法
executeLocalTransaction中的,RocketMQLocalTransactionState.ROLLBACK 状态回滚无效,
消息仍然会被投递到方法 checkLocalTransaction,经过测试
在checkLocalTransaction 执行RocketMQLocalTransactionState.ROLLBACK也不能回滚消息,
消息被发送到队列,导致消费者消费了回滚消息.
同类方案1中测试:
TransactionMQProducer 的继承 TransactionListener的类下方法
executeLocalTransaction中的,LocalTransactionState.ROLLBACK_MESSAGE 回滚消息,
并不会将消息投递到方法 checkLocalTransaction,
在消费者端消费不到回滚消息
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot Dubbo RocketMQ订单支付系统.zip
共119个文件
java:86个
xml:22个
yml:7个
需积分: 0 1 下载量 165 浏览量
2023-12-26
16:02:40
上传
评论
收藏 125KB ZIP 举报
温馨提示
当然可以,以下是一份关于您的Java SpringBoot项目的简介描述: 探索Java的SpringBoot魔法 亲爱的开发者们,准备好一起踏上这次深入Java的SpringBoot之旅了吗?如果您正在寻找一个现代化、高效且易于扩展的开发框架,那么这个SpringBoot项目将是您的理想选择。 主要特点: 快速开发:SpringBoot通过自动配置和约定大于配置的原则,大大简化了项目设置和开发过程。 易于扩展:SpringBoot与生俱来的灵活性使您可以轻松集成各种服务和数据库,以满足您日益增长的需求。 安全性:内置的安全特性,如OAuth2和Spring Security,确保您的应用程序安全无虞。 微服务支持:SpringBoot是微服务架构的理想选择,可以帮助您构建模块化、可扩展的应用程序。 社区支持:全球的开发者社区意味着您可以在遇到问题时找到大量的资源和支持。 无论您是初出茅庐的Java新手,还是经验丰富的开发者,这个项目都将为您提供一个深入了解SpringBoot的机会。无论您是想学习新的技能,还是想提高现有应用程序的性能,这个项目都将是您的宝贵资源。 内容概览 项目设置和初始化 控制器设计和实现 数据持久化与数据库集成 安全性和身份验证 性能优化和监控 部署和生产环境考虑 现在,是时候让您的Java技能得到充分发挥,并掌握SpringBoot的魔法了!这个项目将带领您从基础到高级,探索SpringBoot的每一个角落。
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot Dubbo RocketMQ订单支付系统.zip (119个子文件)
shopcommon.iml 80B
shopapi.iml 80B
ShopOrderExample.java 47KB
ShopMsgConsumerExample.java 25KB
ShopMsgProviderExample.java 23KB
OrderServiceImpl.java 21KB
ShopOrderMqStatusLogExample.java 21KB
ShopUserExample.java 21KB
ShopGoodsExample.java 18KB
ShopCouponExample.java 17KB
ShopUserMoneyLogExample.java 15KB
OrderServiceByMQImpl.java 14KB
ShopOrderGoodsLogExample.java 13KB
ShopPayExample.java 13KB
PayServiceTest.java 11KB
CallbackConsumerMQListener.java 10KB
OrderTransactionMQListener.java 9KB
PayServiceImpl.java 8KB
CancelMQListener.java 8KB
OrderTransactionMQListener.java 7KB
OrderServiceTest.java 6KB
OrderTransactionMQListener.java 5KB
UserServiceImpl.java 4KB
ShopCode.java 4KB
ShopOrder.java 4KB
PaymentConsumerMQListener.java 4KB
ReduceGoodsNumMQListener.java 4KB
GoodsServiceImpl.java 4KB
CancelConsumerMQListener.java 3KB
IDWorker.java 3KB
OrderTransactionMQListenerImpl.java 3KB
PaymentMQListener.java 2KB
CancelMQListener.java 2KB
MQProducerConfiguration.java 2KB
CancelMQListener.java 2KB
PayWebTest.java 2KB
CancelMQListener.java 2KB
RestTemplateConfig.java 2KB
RestTemplateConfig.java 2KB
OrderWebTest.java 2KB
CouponServiceImpl.java 2KB
ShopUser.java 2KB
ShopOrderMqStatusLog.java 2KB
ShopMsgConsumer.java 1KB
GoodsServiceTest.java 1KB
ShopGoods.java 1KB
OrderController.java 1KB
CouponServiceTest.java 1KB
MQEntity.java 1KB
OrderServiceApplication.java 1KB
PayServiceApplication.java 1KB
ShopCoupon.java 1KB
ShopMsgProvider.java 1KB
ShopOrderGoodsLogMapper.java 1KB
Result.java 1KB
ShopOrderMqStatusLogMapper.java 1KB
ShopUserMoneyLogMapper.java 1KB
ShopMsgProviderMapper.java 1KB
ShopMsgConsumerMapper.java 1KB
ShopMsgProviderMapper.java 1KB
PayController.java 1KB
OrderResult.java 1001B
ShopCouponMapper.java 929B
ShopOrderMapper.java 911B
ShopGoodsMapper.java 911B
UserServiceTest.java 893B
ShopUserMapper.java 893B
ShopPayMapper.java 875B
ShopPay.java 833B
ShopUserMoneyLog.java 792B
ShopMsgConsumerKey.java 739B
ShopMsgProviderKey.java 739B
PayResult.java 726B
ShopOrderGoodsLog.java 542B
CouponServiceApplication.java 475B
GoodsServiceApplication.java 473B
UserServiceApplication.java 471B
OrderWebApplication.java 465B
PayWebApplication.java 461B
ShopOrderGoodsLogKey.java 455B
ShopUserMoneyLogKey.java 447B
IGoodsService.java 431B
IUserService.java 428B
ICouponService.java 419B
IPayService.java 382B
IOrderService.java 360B
CastException.java 302B
CustomerException.java 247B
README.md 2KB
mysql.sql 6KB
ShopOrderMapper.xml 17KB
ShopMsgConsumerMapper.xml 10KB
ShopMsgProviderMapper.xml 9KB
ShopMsgProviderMapper.xml 9KB
ShopOrderMqStatusLogMapper.xml 9KB
ShopUserMapper.xml 9KB
ShopGoodsMapper.xml 8KB
ShopCouponMapper.xml 8KB
ShopUserMoneyLogMapper.xml 8KB
ShopOrderGoodsLogMapper.xml 7KB
共 119 条
- 1
- 2
资源评论
01红C
- 粉丝: 1918
- 资源: 2134
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功