自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 K8S管理GPU等简述

核心铁律:/dev/nvidia0以 ** 服务器插了 4 块物理 GPU(对应)** 为例,结合官方文档与实践规范修正细节,完整保留全流程逻辑,新增一站式测试脚本与避坑指南,形成 “原理 + 操作 + 验证 + 排错” 的完整闭环。

2026-01-07 09:12:56 718

原创 蚂蚁sofa saga json文件阅读-可视化编排工具可转化成原生seata-saga

业务节点 ID(比如开卡 d20de769)→ 知道正向执行什么;补偿节点 ID(比如 logoutStateebae97fa)→ 知道回滚执行什么;补偿触发器 ID(581ec6d9)→ 知道什么条件触发补偿;再通过edges里的连线,把这 3 个 ID 串起来,就是完整的补偿逻辑。找 Compensation 类型节点(补偿方法)→ 找 Compensation 类型连线(绑定关系)→ 找指向补偿触发器的连线(触发条件)。

2026-01-05 16:32:51 353

原创 ResponseBodyEmitter 实时异步流式推送

高效传输:减少无效请求实时性好:数据变更立即推送实现简单:基于HTTP协议内存友好:流式处理大数据记住,ResponseBodyEmitter适合单向服务器推送的场景,对于需要双向通信的场景,还是需要WebSocket。但对大多数实时数据推送需求,ResponseBodyEmitter绝对是更优的选择!

2026-01-05 10:52:35 353

原创 理解分布式事务TC\TM\RM

TC(Transaction Coordinator):事务协调者→ 独立部署的Seata Server 服务端,唯一的「总控中心」职责:统一生成分支事务 ID(BID)、维护 XID 和 BID 的一对多绑定关系、存储所有全局 / 分支事务状态、接收 TM 的全局提交 / 回滚指令、向 RM 下达分支提交 / 回滚指令,不参与任何业务逻辑。TM(Transaction Manager):事务管理器→订单服务(order)就是唯一的 TM职责:分布式事务的发起者 / 入口,在标注的方法里。

2025-12-30 14:57:22 723 1

原创 海豹云创建K8S集群

创建文件,内容如下(根据你的实际机器 IP / 密码 / 角色修改):yamlmetadata:name: my-k8s-cluster # 集群名称,自定义spec:# 全局配置ssh:user: root # 机器登录用户(建议root,权限足够)password: "123456" # 机器登录密码(如果用密钥登录,替换为 privateKey: "xxx")port: 22 # 机器SSH端口version: v1.28.0 # 指定K8s版本。

2025-12-25 16:22:16 323

原创 视频字幕自动生成探秘

视频自动生成字幕的核心是,全程围绕展开,与视频画面无直接关联,最终通过音画同步机制实现字幕与画面匹配。

2025-12-22 19:14:38 850

原创 LVS+Nginx实现高负载均衡框架(四层负载LVS+七层应用负载Nginx)

✅核心架构:1 台 Director (LVS)→2 台物理机(机 A / 机 B)→每机 2 个 RS→每 RS1 个 Nginx(共 4 个独立 Nginx),DR 模式,全程步骤落地可直接复制✅统一环境:CentOS 7.x,所有节点同网段(示例网段 192.168.1.x),VIP=192.168.1.100,机 A=192.168.1.10,机 B=192.168.1.11所有节点(Director + 机 A + 机 B)统一执行,避免依赖缺失bash 安装基础依赖(LVS 工具 + N

2025-12-22 15:27:42 636 1

原创 saga文件使用

SAGA 状态机直接配置 Service 层的正向 / 补偿方法,不建议配置 Controller 或 DAO 层(Service 层是业务逻辑聚合层,适合作为补偿粒度);正向方法是 “业务推进逻辑”,补偿方法是 “业务回滚逻辑”,两者需一一对应;Service 方法必须保证幂等、无强事务嵌套,这是 SAGA 补偿成功的核心;状态机通过 “反射 + Bean 工厂” 调用 Service 方法,参数通过上下文透传,无需硬编码调用。name状态机 JSON 中的name是唯一标识。

2025-12-17 22:21:55 922

原创 全局事务入口感知子事务方法-TCC

不会 “主动扫描” 子方法的主方法执行前,创建全局事务 XID 并绑定到当前线程;子方法执行时,Seata 拦截,通过线程绑定的 XID 向全局事务 “注册自己”;全局事务提交 / 回滚时,从数据库读取已注册的 TCC 分支,执行二阶段方法。

2025-12-17 22:06:12 712

原创 LSM 原理、实现及与 B+ 树的核心区别

LSM:「用时间换空间 + 用顺序写换随机写」,通过异步合并牺牲部分读性能和空间效率,换取极致的写入性能;B+ 树:「用空间换时间」,通过树形索引和有序叶子节点,保证稳定的查询性能,兼顾写入(但写入性能受限)。

2025-12-16 22:28:32 526

原创 rocketMq顺序消费,消费者线程数是否需要设置为1

线程数设为 1 的场景线程数设为队列数的场景需全局严格顺序(单队列)分区顺序(按订单 / 用户分片,多队列)业务逻辑不支持任何并发消费逻辑无全局依赖,可按队列并行并发量极低,单线程足以支撑高并发场景,需要提升吞吐量运维成本优先,懒得匹配队列数核心业务,追求性能与资源利用率。

2025-12-15 10:42:57 878

原创 K8S蓝绿发布

K8S 蓝绿发布的核心是标签隔离 + Service 流量切换,流程简单、回滚成本低,适合对可用性要求高、版本差异较大的场景。核心步骤:部署蓝环境 → 部署绿环境 → 验证绿环境 → 切换流量 → 清理蓝环境,全程零停机,是生产环境中最常用的发布策略之一。

2025-12-11 15:42:27 1309

原创 导航寻路、途经、道路映射探秘

先将所有坐标(起点 / 终点 / 途径点)匹配到路网节点→在限定范围内,用双向算法找节点间的连通边组合→按自定义权重(最快 / 最短)筛选最优路径→途径点场景拆分为分段求解(固定顺序)或先求最优顺序再分段(自由顺序)。

2025-12-11 09:30:42 868

原创 GIS导航

基于前文的坐标系转换能力,定位导航核心分为三部分。以下是完整的定位导航实现方案,包含天地图前端集成、定位接口、路径规划、导航轨迹纠偏等关键能力。

2025-12-11 09:06:10 719

原创 Embedding和Remark模型探秘

【代码】Embedding和Remark模型探秘。

2025-12-10 16:49:52 410

原创 STT语音转文字探秘

STT 的核心是,目标是。

2025-12-10 16:41:42 1565

原创 Python Flask 多文件项目打包部署(Linux+Docker+Windows 全环境)

可以在中定义包的版本、作者等元数据,方便外部调用。python运行__description__ = "Flask 多文件 API 项目"python运行# 外部获取元数据import app核心结论通俗解释为什么要有?让普通目录变成「Python 包」,支持导入空文件行不行?行(仅满足基础导入),但工程化项目建议写逻辑Flask 项目中核心作用?统一初始化应用、注册蓝图、简化导入、解决循环依赖哪些目录需要?所有需要被import的目录(如 app/、app/utils/)

2025-12-10 14:06:04 1147

原创 线程池核心线程数corePoolSize设置为0现象

核心线程数 = 0 的核心结论无常驻线程,所有线程都是临时的,空闲即回收队列优先级极高:无界队列→任务积压,有界队列→队列满才创建线程,同步队列→即时创建线程仅适合「突发短期任务」(如 newCachedThreadPool),不适合核心业务 / 长期任务严禁搭配无界队列使用(任务完全不执行)

2025-12-09 16:49:23 747

原创 回顾-springboot自定义xml

创建普通 Java 类,作为自定义 XML 标签要实例化的 Bean:java运行@Data // Lombok 简化 getter/setter,也可手动编写实现接口,将自定义 XML 标签的属性映射到User类的属性,并生成java运行/*** 解析 <my:user> 标签,生成 User 的 BeanDefinition*/// 指定 Bean 的类型(User.class)@Override。

2025-12-09 10:56:16 992

原创 springboot事务超时自动回滚实现

Spring 底层不做轮询,靠 3 个触发点实现高效超时检测,避免资源浪费;超时后通过异常机制强制回滚,结合同步器清理线程绑定资源;事务挂起是底层局限,需通过自定义事务管理器或监控线程兜底;生产环境需形成「源头避免长事务 + Spring 主动防控 + 数据库 / 连接池兜底 + 定时清理」的闭环,确保资源彻底释放、数据一致。

2025-12-08 18:15:39 880

原创 MQ发送到指定队列方式

【代码】MQ发送到指定队列方式。

2025-12-08 09:20:23 931

原创 Spring Cloud Gateway 核心工具类

场景:自定义机房匹配断言(仅允许上海机房请求通过)java运行@Component// 配置参数名// 配置参数列表(供yml配置使用)@Override// 断言逻辑:请求头X-Idc匹配配置值则通过@Override// 配置类(接收yml中的参数)return idc;// yml配置使用该断言/*spring:cloud:gateway:routes:- Idc=shanghai # 自定义机房断言*/

2025-12-05 15:35:55 639

原创 Dubbo/springCloud同机房收敛

java运行@Override// 1. 获取调用端机房标识// 无标签时随机选择// 2. 筛选同机房实例// 3. 同机房有实例则优先选,无则选跨机房if (!java运行@Component// 注入本机机房标识(从配置/环境变量获取)@Override// 1. 获取目标服务的所有实例.build();.next()// 随机选择同机房实例});// 筛选同机房实例// 同机房无实例时返回所有实例(跨机房兜底)yaml。

2025-12-05 15:04:26 1053

原创 Mq扩充队列提高并发

创建多个 Queue(数量 = 预期并发数 / 消费实例数);创建 Exchange,将所有 Queue 绑定到 Exchange;生产者发消息到 Exchange(而非直接发 Queue),通过路由规则分散消息;多消费实例消费不同 Queue,实现并行消费。和 RocketMQ 相比,RabbitMQ 扩充队列需要手动创建多 Queue 并配置绑定,但路由规则更灵活 —— 核心目标都是 “用多队列分散消息,突破单队列的并发瓶颈”。执行扩 Partition 数(N≥消费实例数);

2025-12-05 14:49:11 769

原创 机房搬迁如何无损搬迁方案

而断流是通过路由规则、负载均衡策略等手段,让客户端 “主动拒绝” 向 A 机房发起请求,从源头切断流量,彻底规避缓存残留和多注册中心分流的风险。机房搬迁时注册中心切换 “不丢一个请求、业务零感知”,核心分为「前置准备」「断流剔除」「请求兜底」「机房 A 重启预热」四大步骤,覆盖 Dubbo(RPC)和 Spring Cloud(微服务)全场景,规避存储层与无状态化风险。若搬迁后需重启 A 机房服务(如回迁、扩容),必须先完成预热检测,确认服务可用后再逐步接入流量,避免直接承接流量导致故障。

2025-12-05 13:31:00 688

原创 分布式多阶段入参参数获取

在分布式 TCC 模式中,(全局事务 ID)和 (分支事务 ID)是 Seata 等框架识别分布式事务的核心标识,而业务参数(如订单、账户对象)的传递 / 获取,需结合框架的 上下文机制实现。saga是通过反射拿到参数给compensation 回滚方法的为什么TCC是从上下文取的,原因:1.Confirm/Cancel 由 Seata TC 直接调用(而非 AOP 拦截),无法捕获 Try 阶段的入参快照2.TCC 的 Confirm/Cancel 不是像 SAGA 那样 “和正向方法静态绑定”,Try

2025-12-04 17:57:06 838

原创 undo_log内容和原理以及清理时机

你说的 “初始的数据”= beforeImage(修改前的全量字段值),“生成回滚的数据”= 基于 beforeImage 生成的回滚 SQL(本质还是用 beforeImage 覆盖当前数据)。简单说:undo_log 表就是给分布式事务的每一次数据库修改,拍了 “修改前” 和 “修改后” 两张照片 —— 二阶段回滚时,Seata 会拿着 “修改后” 的照片去数据库找对应的记录,找到后用 “修改前” 的照片把数据还原回去。

2025-12-04 17:34:58 777

原创 AT全局锁和使用原理

回滚时,数据未被其他事务修改,undo_log镜像有效;并发写时,同一数据仅允许一个事务修改,避免脏写。这两个目标最终都服务于 “分布式事务的终态一致性”—— 而你的疑问点(回滚保障)是其中最核心、最容易被忽略的关键作用,也是全局锁设计的初衷之一。row_key核心原则:分库分表场景下,自增主键本身就不符合 “全局唯一” 的设计要求,无论是否用 Seata,都应优先替换为分布式 ID;Seata 适配优先级首选:分布式 ID(雪花算法)→row_key天然唯一,无任何冲突;

2025-12-04 15:00:27 660

原创 Nacos容灾俩种方案对比

单节点 + 共库的 “多 IP 隔离” 是客户端本地行为,无集群协同,易出现重试 / 重复操作问题,仅适合轻量场景;集群 + 共库的 “多 IP 隔离” 是集群全局行为,Raft 同步节点状态,客户端直接获取健康列表,无无效重试,是生产首选;配置层面的核心差异:集群 + 共库需新增和 Raft 相关配置,应用侧仅需补充 “集群节点 IP 列表”,无额外复杂配置。

2025-12-04 14:11:41 814

原创 SkyWalking 全链路监控使用

SkyWalking 全链路监控的核心价值是“无侵入式采集、全链路可视化、快速定位问题”,适合微服务 / 云原生架构。部署 OAP Server + UI(依赖 ES 存储);应用挂载 Agent(通过 JVM 参数指定服务名和 OAP 地址);利用 UI 查看链路、拓扑、指标,配置告警。生产环境需重点关注:采样率优化、存储高可用、插件兼容性,确保监控数据准确且不影响应用性能。通过 SkyWalking 可大幅降低微服务架构下的问题排查成本,提升系统可观测性。

2025-12-04 09:31:55 819

原创 maven自动构建到镜像仓库

通过可实现“Maven 一条命令完成 Jar 打包 + Docker 镜像构建 + 仓库推送”引入 Spring Boot 打包插件和 Docker 插件;配置镜像名称、Dockerfile 路径、仓库认证;编写配套 Dockerfile;执行(构建本地镜像)或mvn deploy(构建 + 推送)。

2025-12-03 10:16:47 411

原创 springboot如何实现自定义探针 探活

创建实现类,重写health()方法,定义自己的 “健康标准”(比如:核心服务可通、内存使用率低于 90%、缓存正常)。若不想引入 Actuator(如极简应用),可直接写一个自定义 HTTP 接口,返回 “健康状态码”(200 = 健康,503 = 不健康),适配容器 / K8s 探针。java运行// 自定义探活接口路径(K8s 需配置访问该路径)// 探活逻辑(和方案一一致,比如检查核心服务)// 健康:返回 200(默认);

2025-12-03 09:47:32 438

原创 如何手动创建、配置、初始化非 Spring 管理的对象

定义在接口中,所有 Spring 应用上下文(如等)都实现了该方法。的核心价值是“让非 Spring 管理的对象享受 Spring 的 DI 和生命周期能力”,是 Spring 框架灵活性的重要体现。它适用于第三方框架整合、动态对象创建等场景,但日常开发中应优先使用注解声明 Bean,仅在必要时使用该方法。

2025-12-03 09:09:33 1003

原创 mysql的自定义HINT语法-实战

MySQL 的 HINT(优化器提示)是开发者 / DBAs 向 MySQL 优化器传递的 “优先级高于默认决策” 的执行指令,本质是 “微调优化器行为的开关”—— 优化器会优先遵循 HINT 规则(若合法),仅当 HINT 无效时才使用默认决策。/*+ ... */格式的优化器指令,仅对当前 SQL 生效;规范:严格遵循/*+开头、空格分隔、参数匹配的要求,避免语法错误;官方清单:按 “索引选择→连接优化→排序分组→执行策略→InnoDB 专属” 分类记忆,重点掌握高频 HINT;

2025-12-02 16:33:42 935

原创 tidb 和startrocks 和(mysql等关系型数据库)

TiDB、StarRocks 和 MySQL 是三款定位、架构、核心能力差异极大的数据库产品,分别对应三大场景。以下从。

2025-11-26 17:43:33 687

原创 堆内存是8GB,在G1中多大的对象才会算大对象

Region 大小 = 堆总大小 ÷Region 总数≈8192MB÷2048=4MB,且 4MB 是 2 的幂次(2²=4),符合 G1 的 Region 大小规则,因此堆 8GB 时,G1 默认 Region 大小为 4MB。若对象大小 > Region 大小的 50%(大对象):G1 会为其分配连续的 Humongous Region(专门存储大对象的 Region 类型),避免大对象跨多个普通 Region 导致的碎片化;

2025-11-26 13:52:01 793

原创 K8S搭建和部署

本文以 “单控制平面 + 2 个工作节点” 的最小生产级集群 为例,从环境准备、集群搭建、网络配置、应用部署到运维监控,完整覆盖全流程,基于 Kubernetes 1.30 版本(最新稳定版),适配 Linux 服务器(CentOS 7/8 或 Ubuntu 20.04/22.04)。bash运行Ubuntu 系统无需关闭 ufw(默认关闭),若开启则执行:bash运行(2)关闭 swap 分区(K8s 要求)bash运行(3)配置内核参数(开启 IP 转发、模块加载)创建内核

2025-11-25 15:12:18 1163

原创 IP 地址体系核心逻辑:计算、作用及互通判断

本质:32 位二进制数(点分十进制表示,如 192.168.1.100),用于唯一标识网络中的设备(服务器、终端、网关等),分为「网络位」(标识设备所属网段)和「主机位」(标识网段内的具体设备)。分类(常用 A/B/C 类,默认网络位固定):类别IP 范围默认网络位长度默认子网掩码核心特点A 类8 位255.0.0.0主机位 24 位,适用于大型网络B 类16 位主机位 16 位,适用于中型网络C 类24 位主机位 8 位,适用于小型网络。

2025-11-25 11:14:32 1571 1

原创 跨机房专有网络(VPC)互通:方案、原理及核心逻辑总结

跨机房 VPC 互通的核心可概括为 “指定入口、加密 / 专属传输、路由引导流量入口:所有互通网段的业务流量(HTTP 等各类应用协议),先汇总到本地机房的网关设备(VPN 网关、VTEP、CE 设备等),而非直接暴露业务 IP 到公网;传输方式:公网方案:网关将私网流量封装为加密包,通过公网 IP 转发到对方机房网关,公网仅传输加密数据,无法破解或篡改原始内容;专线方案:两端网关通过运营商专属链路直接连接,流量无需经过公网,物理隔离传输更安全;

2025-11-25 09:36:32 678

原创 Spring AI MCP限流、鉴权、重试方案

java运行// 1. IP 维度限流@Bean// 2. 客户端 ID 维度限流(客户端请求头传递 X-MCP-Client-Id)@Bean// 3. 工具级限流(客户端请求头传递 X-MCP-Tool-Name)@Beanjava运行@Bean// 配置 SSE 连接重试.filter(ex -> ex instanceof Exception) // 仅重试网络异常.build();

2025-11-24 11:36:07 323

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除