01 2024 档案
摘要:Docker run 命令实现 本文需要实现第一个命令 Mydocker run,类似于 docker run -it [command] 命令。通过创建新的 Namespace 来对新进程进行视图隔离。 核心需要解决如下问题: 命令行参数解析的问题,具体实现时通过 github.com/urfav
阅读全文
摘要:什么是 Dockerfile 用户通过 docker client 客户端去操作 docker daemon 进程对 docker 服务的管理,例如 docker 容器如何从仓库中获取 docker 镜像,这些镜像间依赖关系如何组织等等。 docker 镜像实际上是一种特殊的文件系统,它提供了容器运
阅读全文
摘要:RocketMQ 架构设计 消息队列实现了消息投放和消息消费间的解耦,实现了异步处理消息的功能。RocketMQ 作为消息中间件,在其存储消息的结构上实现了消息均衡投放、消息容灾、高可用(Dledger 主从切换)、自动故障转移特点。 先引入以下几个概念: Broker:实际存储消息的节点,接收来自
阅读全文
摘要:RocketMQ-CountDownLatch2 public class CountDownLatch2 { private final Sync sync; /** * Constructs a {@code CountDownLatch2} initialized with the given
阅读全文
摘要:AQS 结构特性 内部包含 Node、ConditionObject 静态内部类,Node 用来存储没竞争到锁的线程状态、CondidtionObject 是对条件变量的封装; volatile int state 变量记录锁的状态,1 表示锁被持有、0 表示锁被释放,同时对应三个方法来更改/获取锁
阅读全文
摘要:Nginx 负载均衡配置 作为负载均衡器,在版本1.9之前,它只能作为http的负载均衡,也就是在网络模型的第七层发挥作用,1.9之后,它可以对tcp进行负载均衡,比如redis,mysql等。 主要支持以下负载均衡算法: 轮询(round-robin):轮询分发请求; 加权轮询(weight-ro
阅读全文
摘要:Nginx.conf 配置文件结构 Nginx 是一款 web 服务器,以反向代理、负载均衡、高性能而出名。Apache tomcat 也是类似的 Web服务器,区别在于 tomcat 是多进程/多线程的并发模型,nginx 是基于事件的异步IO 的并发模型。 其配置文件整体包括 全局块、http块
阅读全文
摘要:一、Namespace、Cgroups、Rootfs 进程和容器有什么区别? 进程作为计算机程序运行起来后资源管理的总和,内部包含了程序计数器、堆栈、各种变量指令等等; 容器就是对进程做一些限制和约束,从而形成一个边界。Cgroups 技术是用来制造约束的主要手段,Namespace 技术用来修改进
阅读全文
摘要:https://www.cnblogs.com/Anker/p/3258674.html https://zhuanlan.zhihu.com/p/150972878 重点解读epoll:https://zhuanlan.zhihu.com/p/546228628 https://subingwen
阅读全文
摘要:什么是零拷贝? 我们知道操作系统有用户空间和内核空间,在实现 read/write 操作时会涉及到多次系统调用,系统调用就意味着上下文切换,而上下文切换是很耗时的操作。零拷贝的目的就是减少上下文切换次数从而避免多次不必要的数据拷贝。 读写数据的底层 DMA DMA(Direct Memory Acc
阅读全文
摘要:段式管理 段式管理是指将程序按照内容或函数关系分成多个段,每个段有自己的名字。一个用户作业或者进程包含一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机制把段式虚拟地址转换为实际物理内存地址。 段式管理的优点在于可以对各个段分别编写和编译,不同的段互不影响。同时可以通过动态链接进
阅读全文
摘要:https://juejin.cn/post/6892687008552976398?searchId=20230808000034F391CE9EAF068C415D55 https://www.jianshu.com/p/95b50b026895 讲解网络IO的原理 (Linux 2.3 NAP
阅读全文