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