微服务模式订单支付系统
应用技术: 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,
在消费者端消费不到回滚消息
白如意i
- 粉丝: 1w+
- 资源: 3209
最新资源
- Carsim自动驾驶车辆漂移控制 Carsim与Simulink联合仿真,基于LQR的无人车定圆稳态飘移漂移控制算法,默认B级车,可以定制carsim内多个车型,Simulink模型+Carsim数据
- 第5章 全局大喇叭-详解广播机制.pdf
- win32汇编环境,对话框中设置RichEdit内文本的字体
- fpga mips vivado verilog 五级流水线cpu设计 55条指令
- 第6章 数据存储全方案-详解持久化技术.pdf
- comsol仿真教程,多物理场,建模仿真,低频电磁
- 永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介 模型为永磁同步电机伺服控制仿真,支持 Matlab 各个版本 模型内主要包含DC直流电压源、三相逆变器、永
- compat-openssl10-1.0.2o-3.el8.x86-64.rpm
- 新东成食品进销存管理信息系统的设计和开发(源码+lw)
- 基于分数阶扰动观测器的伺服系统摩擦补偿Matlab仿真 1.模型简介 模型为基于分数阶扰动观测器的摩擦补偿仿真,仿真基于永磁同步电机速度、电流双闭环控制结构开发,双环均采用PI控制,PI参数已经
- net-tools-2.0-0.52.20160912git.el8.x86-64.rpm
- 糖果消消乐 cocos creator 3.8.2,资源仅供学习交流,禁止商用
- Java Swing图形界面实现简单烟花效果的示例代码
- 分布式驱动汽车稳定性控制 采用纯Simulink模型搭建,包括控制策略和车辆动力学模型 采用分层式直接横摆力矩控制,上层包括模型预测MPC,滑模控制SMC,PID控制,LQR控制 可灵活对四种控制器
- 【震撼来袭ROS2+CARLA联合仿真,Lattice算法尽在掌控】 解锁智能车新世界,ROS2与CARLA联手打造顶级联合仿真体验告别繁琐安装,一键开启科研与工作的无限可能 亮点一:版本精选,稳
- 基于多二阶广义积分器的谐波提取复现 基于多二阶广义积分器的电网谐波分量提取,可以准确提取电网中的基频负序,5次负序,7次正序,11次负序,13次正序电压幅值,可以根据需求增加更高谐波的提取 默认发2
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈