随笔分类 - Development
摘要:DNS 客户端的缓存与 DNS 响应包中的 TTL 是否一致,取决于客户端的设计和配置,实际情况常常不完全一致。下面详细解释原因、保持一致的方法及常见注意事项。 1. 标准行为(“应一致”) DNS 协议标准(如 RFC 1035)规定,递归 DNS 客户端(包括递归服务器和本地客户端)在收到响应后
阅读全文
摘要:在 Java 应用中,DNS 缓存(DNS Caching)是由 JVM 内置实现的,主要体现在以下几个方面: 1. Java 的 DNS 缓存机制 JVM 默认会缓存 DNS 查询结果。 缓存时间由 JVM 配置参数控制,默认情况下是“永久缓存”,即进程生命周期内只查一次 DNS,之后都用缓存。
阅读全文
摘要:SRV 记录请求的域名(即查询名称)具有严格定义的格式规范,遵循 DNS 协议标准(RFC 2782)。其核心格式结构如下: ⚙️ SRV 记录域名的标准格式 _<service>._<proto>.<domain> _<service>:服务名称,必须以 _ 开头,表示特定服务类型(如 _sip、
阅读全文
摘要:常见DNS记录类型 记录类型 核心功能 应用场景 示例格式 A 域名 → IPv4 地址 网站基础解析、服务器绑定 example.com. IN A 192.0.2.1 AAAA 域名 → IPv6 地址 IPv6 网络支持、物联网设备 example.com. IN AAAA 2001:db8:
阅读全文
摘要:/etc/resolv.conf 是 Linux 系统中 DNS 解析的核心配置文件,用于指定 DNS 服务器、搜索域及解析行为选项。以下结合典型场景提供配置示例及关键说明: 📝 核心配置项说明 nameserver 作用:指定 DNS 服务器的 IP 地址(IPv4/IPv6)。 规则: 按顺序
阅读全文
摘要:在 Bash 中,使用 -c 参数和不使用 -c 参数的主要区别在于命令的解析方式和执行环境。以下是具体对比: 1. 命令解析方式 带 -c 参数 bash -c "命令字符串" 将双引号内的字符串作为完整的命令解析并执行,支持多命令组合(如 &&、|)。 参数传递时,第一个参数会赋值给 $0(通常
阅读全文
摘要:在 Linux 系统中,ps -ef 命令主要用于查看进程信息(如 PID、用户、CPU 占用等),但无法直接显示端口号。若需查看进程关联的端口号,需结合其他命令(如 netstat、lsof 或 ss)。以下是具体方法: 1. 查看进程信息(ps -ef) ps -ef | grep 进程名 功能
阅读全文
摘要:以下是针对 Kubernetes 环境下通过 Secret 管理 SSL 证书的 Spring Boot 配置方案,分为 PKCS12 格式证书和 PEM 格式证书两种场景: 一、前置条件 Secret 创建 在 Kubernetes 中提前创建 Secret,存储证书和私钥文件: # PKCS12
阅读全文
摘要:SSL 证书热更新技术方案 一、背景 SSL 证书热更新功能允许在不重启应用的情况下动态替换证书,适用于需要高可用性、零宕机的场景(如证书续期、证书轮换)。以下方案根据 Spring Boot 版本分为两类: 2023 年及以后:使用 Spring Boot 3.2.0+ 原生支持的 SSL 热重载
阅读全文
摘要:在 Go 语言中,make([]string, 0, len(defaultProperties)) 和 make([]string, len(defaultProperties)) 是两种不同的切片初始化方式,核心区别在于 初始长度 和 容量分配策略。以下是具体对比: 一、语法与参数含义 表达式
阅读全文
摘要:org.springframework.boot.context.config.ConfigDataLoader 类确实会在 Spring Boot 应用主逻辑启动前加载,其核心作用阶段是 环境准备(Environment Preparation),属于 Spring Boot 启动流程中最早处理配
阅读全文
摘要:AutoConfiguration.imports 与 SpringFactoriesLoader 的对比分析 **1. 核心设计差异 文件结构与内容 SpringFactoriesLoader(基于 spring.factories) 文件路径为 META-INF/spring.factories
阅读全文
摘要:在 Spring Boot 的启动流程中,org.springframework.boot.context.config 和 org.springframework.boot.env 相关组件的执行顺序是由 框架核心设计逻辑 和 配置加载阶段的分层职责 决定的。以下是具体原因分析: 一、框架启动流程
阅读全文
摘要:安装 # 下载 Consul wget https://releases.hashicorp.com/consul/1.10.4/consul_1.10.4_linux_amd64.zip # 解压文件 unzip consul_1.10.4_linux_amd64.zip # 移动 Consul
阅读全文
摘要:Ref resilience4j Sentinel
阅读全文
摘要:1 Spring Cloud Config Data Spring Cloud Config 是一个用于分布式系统的配置管理解决方案,它提供了一个集中式的配置服务器(Config Server)和客户端(Config Client),用于管理和获取应用程序的配置数据。以下是对 Spring Clou
阅读全文
摘要:ASM ASM 是一个低级别的 Java字节码操作库,功能强大但API相对复杂。它允许开发者以最细粒度的方式操作字节码。 ASM的特点: 高效:直接操作字节码,性能极高。 灵活:支持复杂的字节码修改和生成。 广泛应用:被许多其他字节码库和框架所使用,如ByteBuddy、CGLIB等。 javass
阅读全文
摘要:静态加载 通过VM启动参数-javaagent将agent的jar包挂载到目标JVM程序,和目标程序一起启动。 启动参数 "-javaagent:[=]"。[=]部分可以指定 agent 的参数,可以传递到premain(String agentArgs, Instrumentation inst)
阅读全文
摘要:通过SDKMAN安装和切换JDK,步骤如下: 安装SDKMAN 首先,你需要安装SDKMAN。打开终端并执行以下命令: curl -s "https://get.sdkman.io" | bash 安装完成后,重新加载shell配置以使更改生效: source "$HOME/.sdkman/bin/
阅读全文

浙公网安备 33010602011771号