归档

2024 年 01 月

作为一名 Java程序员,部署生产环境的服务器是一项基本能力要求,那么,如何部署才能做到业务无感?选择什么样的部署策略,才能将生产事故降到最低?今天我们就来一起聊聊5种常用的部署策略。 Big Bang Deploy 定义 Big Bang…
一、超卖问题复现 1.1 现象 存在如下的几张表: 商品表 订单表 订单item表 商品的库存为1,但是并发高的时候有多笔订单。 错误案例一:数据库update相互覆盖 直接在内存中判断是否有库存,计算扣减之后的值更新数据库,并发的情况下会导致相互覆盖发生: @Transactional(rollbackFor = Exception.class)…
该帖子内容已隐藏,请登录后查看 登录后继续查看 登录 注册 前言 相信大家一定遇到面试的时候被问到高并发的问题吧,不少同学没有这方面的实际经验,被问到是不是一脸懵逼,下面我就个人的经历给大家分享分享一下心得吧。 为什么总在说高并发?…
对技术人来说,面试成功的道路只有一条,就是好好准备技术基础。本文是面试系列文章架构设计篇,作者把自己的八股文和一些经验总结汇总在一起,供大家参考。 一、社区系统的架构 系统拆分…
工作流是我们开发企业应用几乎必备的一项功能,工作流引擎发展至今已经有非常多的产品。最近正好在接触 Camunda ,所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入,希望本文对您有所帮助。如果您是一名Java开发或Spring框架爱好者,欢迎关注我 程序猿DD open in new window ,持续非常技术干货。 #…
前言 SOLID(单一、开闭、里式替换、接口隔离、依赖倒置)五大原则和23种设计模式(常见的单例、构建者、装饰、适配、代理、组合、模板等等),小伙伴们对这些肯定都很熟悉。这些原则和设计模式能够辅助我们,让我们在设计的时候有所抉择,从而达到高内聚、低耦合的目的。…
此文对于部分原理的解释不全,甚至有错误。建议同时参考 一文解决内存屏障 阅读。 在只有双重检查锁,没有volatile的懒加载单例模式中,由于 指令重排序 的问题,我确实不会拿到 两个不同的单例 了,但我会拿到 “半个”单例 。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中 “出现频率最高的关键字”…
业务实现消费回调的时候,当且仅当此回调函数返回 ConsumeConcurrentlyStatus.CONSUME_SUCCESS ,RocketMQ才会认为这批消息(默认是1条)是消费完成的 如果这时候消息消费失败,例如数据库异常,余额不足扣款失败等一切业务认为消息需要重试的场景,只要返回…
随着 RocketMQ 5.1.0 的正式发布,多级存储作为 RocketMQ 一个新的独立模块到达了 Technical Preview 里程碑:允许用户将消息从本地磁盘卸载到其他更便宜的存储介质,可以用较低的成本延长消息保留时间。本文详细介绍 RocketMQ 多级存储设计与实现。 设计总览 RocketMQ 多级存储旨在 不影响热数据读写的前提下…
本文我们一起看看Spring Boot中 JdbcClient 和 JdbcTemplate 之间的差异。 以下内容使用的Java和Spring Boot版本为: Java 21 Spring Boot 3.2.1 假设我们有一个 ICustomerService 接口: public interface ICustomerService {…
上一页 下一页