随笔 - 441
文章 - 4
评论 - 84
阅读 -
109万
10 2024 档案
springboot 实现通用责任链模式
摘要:1.概述 在我们平时的工作中,填写分布填写数据,比如填入商品的基本信息,所有人信息,明细信息,这种情况就可以使用责任链模式来处理。 2.代码实现 2.1商品对象 public class ProductDto { private String name; private String owner;
阅读全文
面试问题
摘要:1.防止订单重复提交 使用 redis 分布式锁来实现,可以使用用户ID,加购物车的商品ID,使用 MD5算法,得出一个key 作为分布式锁的key。解决问题的关键是 保持分布式锁的 key 的唯一性。 2. 缓存击穿 如果用户查的ID数据库没有值,那么缓存就击穿了,解决办法,如果数据库没有值,也给
阅读全文
windows下安装rabbitmq
摘要:下载软件 rabbit 是是使用 erlang 语言编写的,因此 需要下载ERLANG,注意rabbitmq 的版本 和 ERLANG的兼容性 我们现在 erlang26.2 的版本 https://www.erlang.org/patches/otp-26.2 rabbitmq 使用 3.13.6
阅读全文
前端工程化
摘要:1.概念 前端开发的管理工具。 2.模块化和包管理 分解与聚合 函数 文件 问题 1.全局污染 2.依赖混乱 模块化标准 民间标准 commonjs(重要) 运行时 amd cmd umd 官方标准 EcmaScript Module ESM (重要) 编译时 commonjs let xxx=re
阅读全文
频繁full gc 如何排查
摘要:频繁full gc 通常表明应用程序在内存管理方面存在问题,可能导致性能下降,下面是排查步骤和一个详细的示例 排查步骤 收集GC日志 首先,需要开启详细的GC日志,在JVM参数中添加 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/t
阅读全文
java 死锁问题排查
摘要:排查过程 1.识别死锁现象 通常,死锁会表现为应用程序挂起,不响应用户请求或 cpu 使用率下降。 2.收集线程转储 当应用出现不响应时,可以使用以下方法收集线程转储: jstack -l 进程ID > threaddump.txt 3. 分析线程转储 从生成的线程转储寻找 "deadlock" 等
阅读全文
线上问题排查思路
摘要:1.问题确认与收集 问题描述 :明确问题的具体表现,比如系统慢,服务不可用,数据异常等 影响范围: 确定问题影响的用户群体,功能模块或服务 时间点:确定问题发生的事件,是持续性还是间歇性 环境信息: 收集环境信息,服务器配置,jdk版本,应用版本等 2.快速响应 评估严重程度:根据影响范围和业务的重
阅读全文