- 博客(9)
- 收藏
- 关注
原创 基于自定义注解的无代码侵入的操作日志记录方法
构建两种自定义注解@OpRecord和@OpRecordWithId,两种注解应用的场景不同。@OpRecord用于记录简单的操作日志,操作日志的内容都可以从方法参数获取到。@OpRecordWithId用于记录复杂的操作日志,对应切面方法会查询数据库,获得更多信息后做记录。//操作日志类别//操作对象//操作对象类别//操作详情//操作详情类别//操作类别枚举类//id类别//id spel 表达式。
2025-03-13 10:25:40
315
原创 CompletableFuture嵌套使用引起的死锁
Executors.newCachedThreadPool() 创建一个可缓存的线程池。线程池的大小是动态调整的,如果线程空闲超过60秒,线程会被回收。如果有新的任务提交,会创建新的线程。适合处理大量的短时间任务,线程池会根据需要动态调整大小。CompletableFuture嵌套使用时,如果使用的线程池有大小限制,那么你会出现死锁的情况,即子任务执行需要等待线程池释放线程,而父任务又在等待子任务执行完才能释放线程,造成死锁。1.尽量避免嵌套使用CompletableFuture。
2024-11-06 10:29:23
267
原创 使用Routine Load导入kafka的json数据到Doris
表结构很简单,使用聚合模型统计timestamp,op,rid相同时的数量总和。
2024-06-13 15:19:05
648
1
原创 用redis实现共享session
同一域名下有时会存在多个系统,多个系统也可能有多个节点。为了各系统之间共享登录状态,避免二次登陆,需要将session统一存储。
2023-11-29 14:31:46
377
原创 spring boot 日志配置traceId,实现全链路日志追踪
上面的配置无法将traceId 传递到子线程的日志中,如果想在子线程中打印traceId,需要使用自定义线程池,将线程的上下文传递到子线程中,线程池代码如下。通过日志打印trace,能够快速定位日志中某次请求打印的所有日志,方便排查问题。traceId:用于标识某次请求的id。
2023-10-26 14:17:15
2747
原创 Linux查询端口占用情况
p proto 显示proto指定的协议的连接。-n 以数字形式显示地址和端口号。-显示所有处于监听状态的连接。-t 显示当前连接卸载状态。
2023-10-23 11:28:34
182
原创 Linux 打包命令
f:使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。将/opt/test下的所有文件压缩打包进test.jar。将/opt/test下的所有文件打包进test.jar。将/opt/test下的所有文件打包进test.jar。-z:有gzip属性的。
2023-10-20 14:19:08
104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人