<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Zyang_CodeBoy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Zyang_CodeBoy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zyang_CodeBoy]]></copyright><item><title><![CDATA[4 文件存储驱动：AUFS 文件系统原理]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149534569</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149534569</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 22 Jul 2025 13:45:55 +0800</pubDate><description><![CDATA[本文介绍了Docker中使用的联合文件系统(UnionFS)，重点讲解了AUFS的实现原理和工作机制。联合文件系统通过分层存储和联合挂载技术，使多个目录内容呈现为单一文件系统，是Docker镜像分层共享的基础。文章详细说明了如何配置Docker使用AUFS驱动，并深入分析了AUFS的文件存储结构：镜像层和容器层分别存储在diff目录下，通过联合挂载到mnt目录呈现。AUFS采用写时复制机制，首次修改文件时会从镜像层复制到容器层，确保镜像层只读。最后通过实例演示了AUFS的目录结构、挂载过程和写时复制特性，验]]></description><category></category></item><item><title><![CDATA[3 资源限制：如何通过 Cgroups 机制实现资源限制？]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149534115</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149534115</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 22 Jul 2025 13:28:05 +0800</pubDate><description><![CDATA[本文介绍了Linux内核核心技术cgroups（控制组）的功能与使用方法。cgroups用于限制进程或进程组的资源使用（如CPU、内存等），2008年并入Linux内核。其核心概念包括子系统（实现资源控制）、控制组（进程与子系统的关联）和层级树（继承结构）。文章详细演示了如何使用cpu和memory子系统限制资源：通过创建cgroup目录、设置资源限制文件（如cpu.cfs_quota_us、memory.limit_in_bytes）并将进程ID写入tasks文件实现限制。最后说明Docker如何利用cg]]></description><category></category></item><item><title><![CDATA[1 容器技术原理]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149531610</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149531610</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 22 Jul 2025 11:26:29 +0800</pubDate><description><![CDATA[本文介绍了容器技术的起源与发展，重点分析了chroot作为最早的容器雏形，通过实例演示了chroot如何实现文件系统隔离。文章指出仅靠chroot无法实现完整容器隔离，进而阐释了现代容器技术（如Docker）依赖的三大核心机制：Namespace实现资源隔离、Cgroups进行资源限制、联合文件系统支持镜像构建。最后强调了Docker对容器技术发展的推动作用，以及容器在应用开发部署中的价值。文章从技术演进的角度，系统梳理了容器技术从雏形到成熟的发展历程。]]></description><category></category></item><item><title><![CDATA[2 资源隔离：为什么构建容器需要 Namespace ？]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149531446</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149531446</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 22 Jul 2025 11:23:16 +0800</pubDate><description><![CDATA[Docker利用Linux内核的6种Namespace技术实现资源隔离：1）Mount隔离挂载点；2）PID隔离进程ID；3）UTS隔离主机名；4）IPC隔离进程通信；5）User隔离用户权限；6）Net隔离网络设备。通过Namespace技术，Docker容器内的进程只能看到当前Namespace中的资源，实现了容器间的相互隔离。Namespace是Docker容器得以实现的基础技术保障，它为容器提供了轻量级的虚拟化解决方案。]]></description><category></category></item><item><title><![CDATA[ElasticSearch快速入门]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149529441</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149529441</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 22 Jul 2025 10:35:32 +0800</pubDate><description><![CDATA[本文是一篇Elasticsearch 7.11版本的详细教程，包含概述、历史背景及与Solr的对比分析。文章首先介绍Elasticsearch作为分布式全文检索引擎的特性，追溯其发展历程。随后通过与Solr的对比，深入分析两者的架构差异、应用场景和性能特点。教程还涉及Lucene的基础知识，解释其作为搜索引擎核心库的作用。全文旨在为初学者提供系统学习路径，同时为有经验的开发者提供深入的技术参考，帮助读者全面理解Elasticsearch的技术原理和应用实践。]]></description><category></category></item><item><title><![CDATA[Spring @Transactional注解]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149242563</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149242563</guid><author>Zyang_CodeBoy</author><pubDate>Thu, 10 Jul 2025 11:31:53 +0800</pubDate><description><![CDATA[本文详细解析了Spring事务注解@Transactional的使用要点。包括：1)适用场景：应在Service类中被调用的public非final/static方法使用，避免在类级别或private方法使用；2)7种事务传播行为（REQUIRED、MANDATORY等）的区别和适用条件；3)注意事项：默认只捕获RuntimeException、需数据库引擎支持、同类内部调用无效、多线程环境下事务不传播等。通过实例代码展示了不同传播行为的具体表现，帮助开发者正确选用事务参数。]]></description><category></category></item><item><title><![CDATA[为什么要实现 Serializable？——深入理解 Java 序列化机制]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149115556</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149115556</guid><author>Zyang_CodeBoy</author><pubDate>Fri, 04 Jul 2025 13:24:44 +0800</pubDate><description><![CDATA[Java序列化机制解析：为什么需要实现Serializable接口 摘要：Java中的Serializable接口是一个标记接口，用于标识类对象可被序列化。当需要将对象保存到文件、网络传输或分布式系统(如Dubbo)使用时必须实现该接口，因为Java序列化机制需要它来确认对象可被转换。但在HTTP/JSON交互中不需要实现Serializable，因为此时使用的是JSON转换而非Java原生序列化。设计上不自动序列化所有类主要出于安全性和效率考虑：防止敏感数据泄露，并避免不必要的性能开销。]]></description><category></category></item><item><title><![CDATA[LeetCode笔记 NO.27移除元素]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149054969</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149054969</guid><author>Zyang_CodeBoy</author><pubDate>Tue, 01 Jul 2025 21:52:52 +0800</pubDate><description><![CDATA[这个优化在序列中 val 元素的数量较少时非常有效。它的优化是减少了赋值的操作（读、写内存），当nums非常大时，运行时间将会看到明显区别。时间复杂度：O(n)，其中 n 为序列的长度。我们只需要遍历该序列至多两次。时间复杂度：O(n)，其中 n 为序列的长度。我们只需要遍历该序列至多一次。但我觉得这个解释比较扯淡，这么说方法1在val元素数量比较多时也非常有效呢！空间复杂度：O(1)。我们只需要常数的空间保存若干变量。空间复杂度：O(1)。我们只需要常数的空间保存若干变量。]]></description><category></category></item><item><title><![CDATA[LeetCode笔记 NO.704二分查找]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149032696</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/149032696</guid><author>Zyang_CodeBoy</author><pubDate>Mon, 30 Jun 2025 22:18:57 +0800</pubDate><description><![CDATA[题目描述。]]></description><category></category></item><item><title><![CDATA[OpenFeign的@FeignClient注解不指定URL报错：Load balancer does not have available server for client]]></title><link>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/148931959</link><guid>https://blog.youkuaiyun.com/Zyang_CodeBoy/article/details/148931959</guid><author>Zyang_CodeBoy</author><pubDate>Thu, 26 Jun 2025 20:22:41 +0800</pubDate><description><![CDATA[一开始为了快速调通，所以url直接写死的线下环境，发起Http请求，可以正常收到Response。显然当前的情况为3，接下来继续看为什么返回为空导致Feign负载均衡从而触发去注册中心查找注册的当前服务（服务端并未注册在注册中心，故找不到对应服务，因而报错）。2、Url不为空，且Url不包含 #{}时，但Url包含 :// ，则输出为http:// + 原本Url（注意这里如果构成的不是URL，则会抛出异常）1、Url不为空，且Url不包含 #{}时，且Url包含 :// ，则输出为原本Url。]]></description><category></category></item></channel></rss>