首页 / 技术专题CATEGORY / SPRINGFORALL

架构运维

在这个技术方向,积累扎实的知识与实践。

共 316 篇文章

分布式锁实现原理与最佳实践

一、超卖问题复现 1.1 现象 存在如下的几张表: 商品表 订单表 订单item表 商品的库存为1,但是并发高的时候有多笔订单。 错误案例一:数据库update相互覆盖 直接在内存中判断是否有库存,计算扣减之后的值更新数据库,并发的情况下会导致相互覆盖发生: @Transactional(rollbackFor = Exception.class)…

RocketMQ消费进度管理

业务实现消费回调的时候,当且仅当此回调函数返回 ConsumeConcurrentlyStatus.CONSUME_SUCCESS ,RocketMQ才会认为这批消息(默认是1条)是消费完成的 如果这时候消息消费失败,例如数据库异常,余额不足扣款失败等一切业务认为消息需要重试的场景,只要返回…

RocketMQ 多级存储设计与实现

随着 RocketMQ 5.1.0 的正式发布,多级存储作为 RocketMQ 一个新的独立模块到达了 Technical Preview 里程碑:允许用户将消息从本地磁盘卸载到其他更便宜的存储介质,可以用较低的成本延长消息保留时间。本文详细介绍 RocketMQ 多级存储设计与实现。 设计总览 RocketMQ 多级存储旨在 不影响热数据读写的前提下…

RocketMQ业务保障

1 . 为什么从业务上保证 1.1 消息丢失问题 RocketMQ 虽然号称消息不会丢失,但是还是有几率存在MQ宕机以及rocketMQ使用上的问题可能存在消息丢失等,对于类似于支付确认的消息一般来说是一条都不允许丢失的 1.2 消息 幂等 性 在网络环境中,由于网络不稳定等因素, 消息队列 的消息有可能出现重复,大概有以下几种: 发送时消息重复…

应用架构的核心使命是什么?阿里高级技术专家这样说

架构 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原则进行切分,切分的原则,是要便于不同的角色进行并行工作。 为什么需要架构? 有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组件都需要设计和架构。…