业务逻辑编排错误 & TTL浅拷贝导致参数丢失问题 前言 在DDD项目中,为了方便参数的传递,通常会使用ThreadLocal来保存一个对象来实现对参数的跨方法传递,避免通过形参的形式传递。在内部项目中,有一个项目使用的是 alibaba开源的 transmittable-thread... 2024-03-09
使用Redis实现分布式锁的坑 分布式锁的关键在于对单一资源的竞争。获得资源的实例将继续执行,其余实例要么退出(互斥锁),要么等待(阻塞锁)。 实现分布式锁的方案有很多,既可以直接使用MySQL作为分布式锁(例如xxl-job),也可以利用ZooKeeper、Red... 2024-03-04
错用HashedWheelTimer导致的OOM问题 事件中心在私有化环境下,只要server一启动过几秒就oom,查看日志是 Failed to create a thread: retVal -1073741830, errno 11。 异常堆栈: Caused by: java.l... 2024-02-04
CircuitBreak导致ThreadLocal参数丢失问题 背景 使用OpenFeign时,通常会实现RequestInterceptor接口来自定义FeignConfiguration,OpenFeign暴露了feign.RequestTemplate信息,给到我们在发送请求前自定义参数信息... 2024-01-25
IDEA 常用插件 编码类 Generate All Getter And Setter 如其名 AceJump 快速将光标导航到编辑器中可见的任何位置,ctrl+,然后输入字符,进行高亮定位 GsonFormat 将JSONObject格式的Stri... 2024-01-14
IDEA 2023 非常用配置 配置文件全部使用UTF-8 Editor-File Encodings,将所有内容均设置为UTF-8。 Create UTF-8 files 选择 with NO BOM,避免在创建文件前3个字节来标志为UTF-8文件。 参数提示... 2024-01-06
使用highlightjs让Gridea支持代码高亮 Gridea的Lemon主题,默认不支持代码高亮,需要自己补充。目前开源的highlight.js正合适。记录下处理的过程 打开官网,挑选自己喜欢的风格 highlightjs.org/examples 找一个CDN托管网站,... 2023-12-21
Java 20~21 新特性 Java 20没有发布重要的新特性,本文以Java21版本为主。 Java 21 是新的LTS版本,其中发布了众多新的特性。 字符串模板(预览版) 使用官方的STR、FMT 支持通过STR、FMT来实现字符串拼接,可以自定义模板处理... 2023-12-19
Java 19 新特性 Java 19 最核心的特性就是虚拟线程(Virtual Threads) 简介 该特性在Java19中是预览特性,虚拟线程是用户态下的线程,和go语言中的goroutines,Erlang中的processes类似,虚拟线程并非比... 2023-12-18
Java 17~18 新特性 特性列表 版本 特性 Java 17(LTS) 1. switch 类型推断 2. 伪随机数变化 Java 18 1. 使用UTF-8编码 2. jwebserver 3. Object、Thread部分方法标记... 2023-12-17