RocketMQ 中冷热分离的随机索引模块详解

消息系统中随机索引的特点 RocketMQ 广泛使用于各类业务场景中,在实际生产场景中,用户通常会选择消息 ID 或者特定的业务 Key(例如学号,订单号)来查询和定位特定的一批消息,进而定位分布式系统中的复杂问题。传统方案下,消息索引的存储是基于数据库系统或者基于本地文件系统实现的,受限于磁盘容量,很难满足海量数据的写入诉求。…

hello hello 发布于 2024-01-18

Spring Boot 实现异步事件Event

场景 很多时候当我们完成某些业务后需要给用户推送相关消息提醒。对于这种非核心业务功能我们可以拿出来,创建一个事件去异步执行,从而实现核心业务和子业务的解耦。 实现 定义事件类 Event 创建一个类,继承 ApplicationEvent ,并重写构造函数。 ApplicationEvent 是Spring提供的所有应用程序事件扩展类。 public…

hello hello 发布于 2024-01-18

Spring系列之父子容器详解

主要的问题 什么是父子容器? 为什么需要用父子容器? 父子容器如何使用? 下面我们就来探讨探讨。 我们先来看一个案例 系统中有2个模块:module1和module2,两个模块是独立开发的,module2会使用到module1中的一些类,module1会将自己打包为jar提供给module2使用,我们来看一下这2个模块的代码。 模块1…

hello hello 发布于 2024-01-18

分布式锁——咸鱼也能懂的Zookeeper分布式锁实现原理

Zookeeper 是一种分布式协调服务,在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。…

hello hello 发布于 2024-01-17

Spring系列之jdk动态代理和cglib代理

Spring中有个非常重要的知识点,AOP,即面相切面编程,spring中提供的一些非常牛逼的功能都是通过aop实现的,比如下面这些大家比较熟悉的功能 spring事务管理:@Transactional spring异步处理:@EnableAsync spring缓存技术的使用:@EnableCaching…

hello hello 发布于 2024-01-17

Spring系列之@Scope、@DependsOn、@ImportResource、@Lazy 详解

@Scope:指定bean的作用域 用法 @Scope用来配置bean的作用域,等效于bean xml中的bean元素中的scope属性。 看一下其源码: @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented…

hello hello 发布于 2024-01-17

Spring之Bean循环依赖详解

什么是循环依赖? 这个很好理解,多个bean之间相互依赖,形成了一个闭环。 比如:A依赖于B、B依赖于C、C依赖于A。 代码中表示: kotlin复制代码public class A{ B b; } public class B{ C c; } public class C{ A a; } 如何检测是否存在循环依赖?…

hello hello 发布于 2024-01-17

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

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

hello hello 发布于 2024-01-16

5种常用的服务器部署策略

作为一名 Java程序员,部署生产环境的服务器是一项基本能力要求,那么,如何部署才能做到业务无感?选择什么样的部署策略,才能将生产事故降到最低?今天我们就来一起聊聊5种常用的部署策略。 Big Bang Deploy 定义 Big Bang…

hello hello 发布于 2024-01-16

Spring系列之玩转bean scope

本文内容 详细介绍5中bean的sope及使用注意点 自定义作用域的实现 应用中,有时候我们需要一个对象在整个应用中只有一个,有些对象希望每次使用的时候都重新创建一个,spring对我们这种需求也提供了支持,在spring中这个叫做bean的作用域,xml中定义bean的时候,可以通过scope属性指定bean的作用域,如: <bean id=""…

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