istio流量分发实战:从配置到踩坑全解析

博主头像 本文通过一个真实的 Istio 流量分发案例,系统梳理按比例、按 Header、按 URL 前缀等常见路由方式,并重点分析 Host 不匹配导致流量失效的根因。结合 Nginx 与 Sidecar 共存场景,详细说明金丝雀、灰度、蓝绿及 A/B 测试在 Istio 中的落地方式,适合正在或即将引入 ... ...

每周读书与学习->JMeter性能测试脚本编写实战(四)-利用JMeter对MySQL数据库查询进行性能测试

博主头像 每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 在前面的学习中,介绍了很多Jmeter的理论知识,包括Jmeter中很多不同元件的详细介绍以及每个元件的作用 ...

Agentic Coding一些实践总结

博主头像 最近一年AI编码飞速发展,现在我的90%以上的代码都是出自AI。想想在2024年调用OpneAI官方接口(3.5模型),超过10K的Token就让LLM的上下文完全混乱,导致LLM无法记住太多东西,更不用说调用工具,生成代码了。到目前为止,用了各种工具已经半年以上了,记录一下总体的实践经验。后面将c ...

Redisson 使用手册:从 API 误区到看门狗失效,在此终结分布式锁的噩梦

博主头像 在上一篇《分布式锁的代价与选择:为什么我们最终拥抱了Redisson?》中,我们聊到了手写 SETNX 的"茹毛饮血"时代。既然选择了 Redisson,就意味着我们已经告别了那些让人提心吊胆的死锁噩梦。 很多时候,我们以为只是调用了一个简单的 lock.lock(),但背后其实是一整套复杂的自动续... ...

FastAPI定时任务全攻略:从入门到避开多进程的坑

博主头像 本文详细介绍了在FastAPI框架中如何集成并使用APScheduler创建可靠的定时任务。从为什么需要专门的定时任务库讲起,通过比喻解释核心概念,提供了完整的、可直接复用的集成代码。文章重点剖析了多进程部署环境下定时任务重复执行的经典问题,并给出了基于文件锁和数据库锁的两种实用解决方案,帮助你避免... ...

懂得编程语言的通用结构,随便哪个语言都是手拿把掐

博主头像 编程语言核心结构体系:从相似性到本质理解 前言 在接触过多个编程语言的学习之后,观察到一些通用的范式结构,编程语言虽然表面差异巨大,但底层存在一套不可简化的最小完备集——这是所有语言都必须包含的基本元素,否则无法表达任意算法。 而把握住这一点之后,对任意编程语言的学习都有一种脉络极其明晰的感觉,一旦 ...

APEX实战第12篇:Oracle APEX 工作区密码忘记了怎么办?

博主头像 在 Oracle APEX 开发过程中,最让人抓狂的瞬间莫过于:由于长时间没登录或者浏览器缓存失效,突然发现自己的 Workspace(工作区) 密码死活对不上了。 作为一名在 APEX 坑里摸爬滚打的从业者,笔者今天就带大家梳理一下官方提供的几种“自救”方案。无论你是普通开发者,还是手握重权的管理 ...

DTS按业务场景批量迁移阿里云MySQL表实战(下):迁移管理平台设计与实现

博主头像 本文是 DTS按业务场景批量迁移阿里云MySQL表实战(上):技术选型和API对接 的后续,应用状态模式,完成业务系统中的迁移模块。DTS的对接方式可参考前文。 迁移管理平台设计与实现 完成DTS API对接后,就需要考虑如何将DTS和业务系统有机结合实现整套的迁移流程。 出于信息安全角度的考虑,本 ...

一种多选项的高效存取(存储、查询)解决方案

博主头像 本文主要内容 对于多选项的值,如何保存?本文提供了一种非常规的方案。 对于记录在数据库中的多选项的值,如何快速查询那些记录是包含了某个(某些)选项?本文使用了“与位运算”解决查询问题。 源码地址:https://github.com/HackyleShawe/JavaBackEndDemos/tre ...

SpringBoot进阶教程(八十九)rabbitmq长链接及域名TTL,多机房切换配置重连能力

博主头像 在Spring Boot中配置RabbitMQ以解决长连接稳定性、域名TTL问题及机房切换后的自动重连能力,需结合 连接工厂参数优化、DNS缓存刷新、自定义重连策略 三个核心方向。下面将介绍可直接落地的完整配置方案。 v一、基础依赖与核心配置 首先确保pom.xml 中引入Spring AMQP依赖 ...

spring6-工厂设计模式与bean的实例化方式

博主头像 bean的作用域 ioc容器默认bean是单例的(singleton)。 bean对象的创建是在初始化上下文的时候就创建了,每一次调用getBean()时,都返回那个单例对象。 // 这行代码会创建配置里面的bean对象 ApplicationContext context = new FileSy ...

LLVM Pass快速入门(三):指令替换

指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test ...

123···100>