排序
一种优雅的方式整合限流、幂等、防盗刷
大家在工作中肯定遇到过接口被人狂刷的经历,就算没有经历过,在接口开发的过程中,我们也需要对那些容易被刷的接口或者和会消耗公司金钱相关的接口增加防盗刷功能。例如,发送短信接口以及发送...
背会了常见的几个线程池用法,结果被问翻了
分享是最有效的学习方式。 背景 这是张小帅失业之后的第三场面试。 面试官:“实际开发中用过多线程吧,那聊聊线程池吧”。 “有CachedThreadPool:可缓存线程池,FixedThreadPool:定长线程池.......
SpringBoot使用git-commit-id-maven-plugin打包
简介 git-commit-id-maven-plugin 是一个maven 插件,用来在打包的时候将git-commit 信息打进jar中。 这样做的好处是可以将发布的某版本和对应的代码关联起来,方便查阅和线上项目的维护。至于...
【进阶篇】使用 Redis 实现分布式缓存的全过程思考(一)
目录 前言 一、关于缓存 二、基本数据结构 三、缓存注解 3.1自定义注解 3.2定义切点(拦截器) 3.3 AOP 实现 3.4使用示例 四、数据一致性 4.1缓存更新策略 4.2缓存读写过程 五、高可用 5.1缓存...
缓存监控治理在游戏业务的实践和探索
缓存监控治理在游戏业务的实践和探索, 作者:来自 vivo 互联网服务器团队- Wang Zhi 通过对 Redis 和 Caffeine 的缓存监控快速发现和定位问题降低故障的影响面。 一、缓存监控的背景 游...
NIO:解开非阻塞I/O高并发编程的秘密
NIO:解开非阻塞I/O高并发编程的秘密,流与块 Standard IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成...
大家都一样的《策略模式》
大家都一样的《策略模式》,不同类型的消息处理 这里抽象层用的是接口 MessageProcess /** * 消息处理 * * @author haiyang */ public interface MessageProcess<K,V> { /** * 处理消息 * ...
java通过SSE实现消息推送
java通过SSE实现消息推送,一、什么是SSE 严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。 也就是说,...
Keycloak~infinispan中MergedUpdate中lifespanMs和maxIdleTimeMs
Keycloak~infinispan中MergedUpdate中lifespanMs和maxIdleTimeMs,在 Keycloak 中,MergedUpdate 类里的 lifespanMs 和 maxIdleTimeMs 是与 Infinispan 分布式缓存会话管理密切相关的两个核心参...
Spring Boot + Maven 多模块项目开发详解
Spring Boot + Maven 多模块项目开发详解 在现代软件开发中,模块化开发是一种非常重要的设计思想。它不仅能提高代码的可维护性,还能促进团队协作。今天,我们就来聊聊如何使用 Spring Boot 和...
JAVA 静态代理 & 动态代理
JAVA 静态代理 & 动态代理,Java中,代理模式是一种常见的设计模式,用于为某对象提供一种代理,以控制对该对象的访问。根据代理类的实现方式,可以分为静态代理和动态代理。以下将分别介绍这两...
探秘 Java ArrayList 集合:解锁数据存储新姿势
探秘 Java ArrayList 集合:解锁数据存储新姿势,个人主页 JAVA专栏 文章目录 个人主页 JAVA专栏 一、引言 二、为什么需要集合 2.1 数组的弊端 2.2 集合的优势 2.3 集合存储数据类型的特点 2.3.1...













