这些年背过的面试题——架构设计篇

对技术人来说,面试成功的道路只有一条,就是好好准备技术基础。本文是面试系列文章架构设计篇,作者把自己的八股文和一些经验总结汇总在一起,供大家参考。 一、社区系统的架构 系统拆分…

hello hello 发布于 2024-01-12

Spring Boot整合Camunda实现工作流

工作流是我们开发企业应用几乎必备的一项功能,工作流引擎发展至今已经有非常多的产品。最近正好在接触 Camunda ,所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入,希望本文对您有所帮助。如果您是一名Java开发或Spring框架爱好者,欢迎关注我 程序猿DD open in new window ,持续非常技术干货。 #…

hello hello 发布于 2024-01-12

RocketMQ消费进度管理

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

hello hello 发布于 2024-01-12

volatile关键字的作用、原理

此文对于部分原理的解释不全,甚至有错误。建议同时参考 一文解决内存屏障 阅读。 在只有双重检查锁,没有volatile的懒加载单例模式中,由于 指令重排序 的问题,我确实不会拿到 两个不同的单例 了,但我会拿到 “半个”单例 。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中 “出现频率最高的关键字”…

hello hello 发布于 2024-01-12

Java 中保持扩展性的几种套路和实现

前言 SOLID(单一、开闭、里式替换、接口隔离、依赖倒置)五大原则和23种设计模式(常见的单例、构建者、装饰、适配、代理、组合、模板等等),小伙伴们对这些肯定都很熟悉。这些原则和设计模式能够辅助我们,让我们在设计的时候有所抉择,从而达到高内聚、低耦合的目的。…

hello hello 发布于 2024-01-12

RocketMQ 多级存储设计与实现

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

hello hello 发布于 2024-01-12

对比Spring Boot中的JdbcClient与JdbcTemplate

本文我们一起看看Spring Boot中 JdbcClient 和 JdbcTemplate 之间的差异。 以下内容使用的Java和Spring Boot版本为: Java 21 Spring Boot 3.2.1 假设我们有一个 ICustomerService 接口: public interface ICustomerService {…

hello hello 发布于 2024-01-10

RocketMQ文件刷盘机制与过期文件删除

文件刷盘机制 RocketMQ 的消息是存储在磁盘上的,这样做有两个优点: 保证断电后恢复 让存储的消息量超出内存的限制 RocketMQ 存储与读写是基于 JDK NIO 的内存映射机制,具体使用 MappedByteBuffer(基于MappedByteBuffer 操作大文件的方式,其读写性能极高)RocketMQ…

hello hello 发布于 2024-01-10

初创公司5大Java服务困局,阿里工程师如何打破?

1.系统不是分布式 1.1.单机版系统抢单案例 // 抢取订单函数 public synchronized void grabOrder(Long orderId, Long userId) { // 获取订单信息 OrderDO order = orderDAO.get(orderId); if (Objects.isNull(order)) {…

hello hello 发布于 2024-01-10

RocketMQ业务保障

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

hello hello 发布于 2024-01-10
上一页 下一页