<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[骄马之死的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/youyoujbd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; youyoujbd]]></copyright><item><title><![CDATA[订单系统幂等方案流程 + 代码实现]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161956773</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161956773</guid><author>youyoujbd</author><pubDate>Sat, 13 Jun 2026 15:40:55 +0800</pubDate><description><![CDATA[订单系统幂等方案流程 + 代码实现]]></description><category></category></item><item><title><![CDATA[Nacos]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161861644</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161861644</guid><author>youyoujbd</author><pubDate>Thu, 11 Jun 2026 11:04:56 +0800</pubDate><description><![CDATA[Nacos 核心原理]]></description><category></category></item><item><title><![CDATA[JVM 核心知识]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161787700</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161787700</guid><author>youyoujbd</author><pubDate>Mon, 08 Jun 2026 18:46:10 +0800</pubDate><description><![CDATA[JVM 核心知识]]></description><category></category></item><item><title><![CDATA[SpringMVC + SpringBoot 核心知识点总结]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161776159</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161776159</guid><author>youyoujbd</author><pubDate>Sun, 07 Jun 2026 19:28:12 +0800</pubDate><description><![CDATA[SpringMVC + SpringBoot 核心知识点总结
]]></description><category></category></item><item><title><![CDATA[Spring 核心知识点（IOC + AOP + 事务）]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161764230</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161764230</guid><author>youyoujbd</author><pubDate>Sun, 07 Jun 2026 11:23:50 +0800</pubDate><description><![CDATA[Spring 中 Bean 从创建到销毁遵循固定执行流程，AOP 代理对象也在此流程中生成。]]></description><category></category></item><item><title><![CDATA[Redis 核心知识点总结]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161655242</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161655242</guid><author>youyoujbd</author><pubDate>Sat, 06 Jun 2026 17:11:13 +0800</pubDate><description><![CDATA[Redis 核心知识点总结]]></description><category></category></item><item><title><![CDATA[MySQL-InnoDB 核心原理]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161591526</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161591526</guid><author>youyoujbd</author><pubDate>Mon, 01 Jun 2026 22:26:57 +0800</pubDate><description><![CDATA[MySQL-InnoDB 核心原理
]]></description><category></category></item><item><title><![CDATA[MyBatis SqlSession 与缓存机制详解]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161573569</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161573569</guid><author>youyoujbd</author><pubDate>Sun, 31 May 2026 23:55:15 +0800</pubDate><description><![CDATA[一级缓存是SqlSession 级别的缓存，属于默认开启、无法关闭的本地缓存。二级缓存是Mapper（Namespace）级别的缓存，跨 SqlSession 共享，多个线程/会话可以访问同一份缓存数据。SqlSession：由 Spring 托管，与线程、事务绑定，保证同一事务内会话唯一，非事务环境会导致会话频繁创建销毁、一级缓存失效。一级缓存：SqlSession 级别，默认开启，会话内共享，会话关闭即清空。二级缓存。]]></description><category></category></item><item><title><![CDATA[JUC（java.util.concurrent）核心知识点]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161548982</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161548982</guid><author>youyoujbd</author><pubDate>Sun, 31 May 2026 10:54:04 +0800</pubDate><description><![CDATA[JUC（java.util.concurrent）核心知识点]]></description><category></category></item><item><title><![CDATA[缓存与数据库一致性的核心方案]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161535499</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161535499</guid><author>youyoujbd</author><pubDate>Sat, 30 May 2026 20:08:37 +0800</pubDate><description><![CDATA[缓存与数据库一致性的核心方案]]></description><category></category></item><item><title><![CDATA[Java 内存模型（JMM）深度解析]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161473098</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161473098</guid><author>youyoujbd</author><pubDate>Fri, 29 May 2026 00:15:28 +0800</pubDate><description><![CDATA[在一个线程内，书写在前面的操作先行发生于书写在后面的操作。虽然 CPU 会为了性能进行指令重排，但 JMM 承诺"单线程执行结果的正确性"（即 as-if-serial 语义）。]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata 框架解决方案]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161455582</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161455582</guid><author>youyoujbd</author><pubDate>Wed, 27 May 2026 19:17:44 +0800</pubDate><description><![CDATA[分布式事务 Seata 框架解决方案]]></description><category></category></item><item><title><![CDATA[ThreadLocal 核心原理]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161440207</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161440207</guid><author>youyoujbd</author><pubDate>Wed, 27 May 2026 10:08:58 +0800</pubDate><description><![CDATA[Threadlocal 原理和实战]]></description><category></category></item><item><title><![CDATA[Synchronized 底层原理]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/161432174</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/161432174</guid><author>youyoujbd</author><pubDate>Tue, 26 May 2026 23:25:34 +0800</pubDate><description><![CDATA[synchronized 底层原理]]></description><category></category></item><item><title><![CDATA[Nginx 与 DMZ 区域部署架构及配置详解]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/154444320</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/154444320</guid><author>youyoujbd</author><pubDate>Wed, 05 Nov 2025 15:24:56 +0800</pubDate><description><![CDATA[Nginx 与 DMZ 区域部署架构及配置详解]]></description><category></category></item><item><title><![CDATA[生产者消费者模式中判断条件使用while的原因]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/154240331</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/154240331</guid><author>youyoujbd</author><pubDate>Sat, 01 Nov 2025 17:09:42 +0800</pubDate><description><![CDATA[虚假唤醒不是代码写错导致的，而是操作系统和 JVM 底层实现的 “正常小漏洞”—— 为了效率或简化设计，它们偶尔会 “多唤醒几个线程”，或者 “误唤醒线程”，本质是 “底层为了方便，牺牲了一点‘精确性’”。代码分析：但生产者消费者模式就是只有一个生产者和一个消费者。多个生产者多个消费者模式下，即使不出现虚假唤醒依然会有问题，因为唤醒的线程并不确定，即使全部唤醒，依然会有多个现成竞争的情况，而竞争的结果并不确定。由于存在虚假唤醒的问题，如果使用 if 在消费者没有消费完成的情况下即唤醒生产者就会出问题。]]></description><category></category></item><item><title><![CDATA[Jmeter Address already in use 使用分压机解决方法]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/153962201</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/153962201</guid><author>youyoujbd</author><pubDate>Mon, 27 Oct 2025 14:37:10 +0800</pubDate><description><![CDATA[但这种方案不能完全解决问题，因为有些压测需求是需要长连接的，例如并发数设置的很高的情况下，即使设置长连接也会有这个问题，因此最根本的解决方法是设置分压机。Jmeter Address already in use 是由于单台压测机端口资源耗尽导致的。注意启动方式和单机有所区别。]]></description><category></category></item><item><title><![CDATA[使用Redis实现秒杀的改进]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/153688534</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/153688534</guid><author>youyoujbd</author><pubDate>Tue, 21 Oct 2025 21:39:33 +0800</pubDate><description><![CDATA[当有流量进来直接去set中获取劵号，获取到的劵和用户绑定在一起。如果没有获取到劵号则直接返回，不再向下执行，避免了无效的资源浪费。使用set结构，提前生成劵码并放入redis中，落表，此时虽然落表但并不绑定用户信息，只要确保劵号唯一既可。最近看了公司设计了秒杀抢劵系统，相比于传统的加锁方式效率更高。直接查询redis的set中元素的数量，提高查询效率。]]></description><category></category></item><item><title><![CDATA[微信小程序短连接跳转]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/153622283</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/153622283</guid><author>youyoujbd</author><pubDate>Mon, 20 Oct 2025 16:32:03 +0800</pubDate><description><![CDATA[业务核心需求为通过短信触达用户以开展营销活动，且活动需支持配置化 —— 即通过传递不同参数，引导用户跳转至对应的专属营销活动页面。基于该需求，功能实现分两步推进：第一步完成营销活动页面的设计开发，第二步进行功能上线与部署。这里我直接改的麦当劳的页面，他的页面是加密 URL Scheme，我采用的是明文 URL Scheme，对它的页面进行了稍微简化。二者的具体差别可以看看微信文档。通过请求链接：https://xxx/a/?这里的nginx是请求转发过来作为反向代理的nginx。]]></description><category></category></item><item><title><![CDATA[微信小程序OCR识别遇到的坑]]></title><link>https://blog.youkuaiyun.com/youyoujbd/article/details/153470079</link><guid>https://blog.youkuaiyun.com/youyoujbd/article/details/153470079</guid><author>youyoujbd</author><pubDate>Fri, 17 Oct 2025 15:29:06 +0800</pubDate><description><![CDATA[不得不说微信文档就是一坨shit，需要不断自己试错，最终我结合两个文档不断尝试调通。最终发现：只需要设置body为formdata，参数key可以随便设置，类型为file既可，这么一看和他提供的文档像是闭着眼写的一。8月份的时候微信提示插件即将停止维护，当时没当回事，后来9月份使用OCR插件的时候直接报错了。查了下文档发现，前端OCR插件仅做展示，要想识别证件，要花钱买接口啦。2. 给了请求地址，但是和入参，并且有例子，但是没给详细的参数。1.给了入参和返回值，但是没给请求地址。]]></description><category></category></item></channel></rss>