自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 DNS详解以及Bind使用(一)---概述

这是目录相关概念DNS标题为什么DNS服务器可以有多台DNS查询类型DNS解析类型DNS服务器类型:一次完整的查询请求区域和域(zone & domain)资源记录资源记录的定义格式:相关概念DNSDomain name Service: 使用特定的应用层一种协议,默认端口使用 tcp 53 和udp 53端口FQDN:full qualified domain name : 是一...

2019-12-17 17:42:32 1447

原创 记一次容器中Java线程池异常

记一次容器中Java线程池异常分析过程:1、查看日志2、分析代码3、是否是环境问题4、 测试环境复现:今天下午测试报给我一个问题,说测试环境中某个功能经常执行到一半就没结果了。到测试环境查看数据库记录,发现确实如此,该任务执行开始之后没有更新后续的任务状态,而该任务的执行流程并不复杂,只是使用了Java的 ThreadPoolExecutor来执行一个延时任务。分析过程:1、查看日志在测试环境中,应用打印的日志比较奇怪,某些时候线程池执行任务可以正常结束,某些时候线程池的线程日志打印到一半就戛然而止

2020-09-10 08:51:39 595

转载 动态链接库、静态链接库

毕业后一直没从事C和C++方向的开发,对此类概念逐渐疏远,最近看一些操作系统和Golang相关知识时,对这个概念想深入研究一番,正好看到一篇比较不错的帖子,截取转载过来,并附加自己的一些理解:原帖地址:C++静态库与动态库详解什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)

2020-08-24 16:30:09 513

原创 Linux Cgroups 深入理解

cgroups 是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对 cpu,内存等资源实现精细化的控制,目前越来越火的轻量级容器 Docker 就使用了 cgroups 提供的资源限制能力来完成cpu,内存等部分的资源控制。另外,开发者也可以使用 cgroups 提供的精细化控制能力,限制某一个或者某一组进程的资源使用。比如在一个既部署了前端 web 服务,也部署了后端计算模块的八核服务器上,可以使用 cgroups 限制 web server 仅可以使用其中的六个核,把剩下的

2020-07-16 10:21:33 905

原创 Linux Bind Mount 和 Mount Propagation

文章目录什么是绑定挂载Shared Subtreespeer grouppropagation type测试bind mount下的挂载传播查看propagation type和peer groupshared、private mountslave mount测试mount namespace下的挂载传播shared subtrees什么是绑定挂载我们知道Linux 每个常规的文件都有inode,inode可以理解为文件的索引节点,其保存了文件的元信息。其实在Linux VFS中,inode stru

2020-07-14 08:53:16 1850

原创 Docker 使用 Systemd Socket

以下环境默认为centos7最近切换Docker版本时发现新版本Docker的 Systemd Unit File 和之前的不太一样,通常我们知道,Docker Daemon 启动时,可以通过 --host 参数(简写为 -H)来指定 Daemon Socket 连接的位置,比如 --host=unix:///var/run/docker.sock 表示使用一个 Unix Domain Socket;而 --host=tcp://0.0.0.0:2376 表示 Docker Daemon 监听在 2376

2020-06-13 21:26:42 1891

原创 深入理解 Socket, NIO 和 Epoll

之前在内部分享过一次关于NIO相关的知识,感觉通过这次整理,对NIO和Epoll整体上又多了一些认识,虽然没有能力阅读内核源码,但是希望这篇文章可以从整体上帮助各位认识NIO和Epoll。文章目录中断网卡中断软中断阻塞的原理内核接受网络数据的全过程Unix 网络IO分类阻塞I/O非阻塞I/OI/O多路复用信号驱动I/O异步I/O总结IO多路复用selectepoll原理浅析:创建epoll对象维护监视列表接收数据pollable对Socket的理解中断计算机执行程序时,会有优先级的需求。比如,当计算机

2020-06-12 16:35:07 804

原创 Docker镜像在OverlayFs下的存储细节

之前一直对Docker镜像存储的细节不太清楚,甚至以为Docker ImageId 就等同于Digest,最近看到几篇博文,结合自己测试环境的实操,进行如下记录:Docker镜像拉取的过程Docker Registry Api可参考 Docker Registry HTTP API V2为什么要拉取两种类型的配置文件?manifest 是针对registry服务端的配置信息Image config 是 针对本地镜像的描述为什么要有Digest:digest是对 manifest文件的

2020-06-10 08:38:50 1532

原创 Kubernetes CNI具体流程和Flannel原理探究

根据张磊的《深入剖析kubernetes》中可以了解到k8s CNI模式的主要工作流程,加上近期老版本测试环境发现的flannel ip分配冲突问题,个人觉得有必要整理一下CNI工作原理以及Flannel IP 分配流程,供需要的朋友在出现类似问题时进行问题定位和原理理解。本文不会特别详细的回顾docker网络基础和k8s网络基础,因此适合在实际中使用过docker和k8s的看官阅读~众所周知,k8s通过cni网络模型来规定集群内网络实现的基本流程和模式,使用各种网络插件来完成具体的容器网络配置,从而完

2020-05-17 12:38:31 3515

原创 JUC线程池-ThreadPoolExecutor源码详细解读

最近在读JUC源码包的源码,参考了大量JUC线程池: ThreadPoolExecutor详解的内容后,这里做一下笔记,其中掺杂了我阅读源码对原文的一些补充,小伙伴可以关注 https://www.pdai.tech/,是一个我个人认为非常不错的技术博主写的java全栈知识体系这是目录ThreadPoolExecutor使用详解Execute原理参数三种类型newFixedThreadPoolnewSingleThreadExecutornewCachedThreadPool关闭线程池关闭方式 - shu

2020-05-12 11:13:35 290

原创 AQS源码学习(二)----- Condition

文章目录并发与同步:临界区Spinlock实现信号量与管程信号量管程Java中Condition实现await完全释放锁fullyRelease挂起线程signal转移到CLH唤醒后检查中断状态处理中断状态参考文章上一篇结合ReentrantLock介绍了独占锁的源码,以及对AQS中相关源码进行了解析,这一篇来看一下Condition。为了能够讲明白这个东西,这里先上一些操作系统的基本知识,希...

2020-04-23 16:37:33 214

原创 AQS源码学习(一)---- ReentrantLock

文章目录AQS整体理解AQS的主要方法和业务目标AQS基本框架原理概览数据结构stateAQS重要方法与ReentrantLock的关联ReentrantLock 为例分析加锁和解锁流程lock()acquireQueued() 和 addWaiter()unlock()cancelAcquire(Node node)参考文章:一直对AQS认识的比较浅,工作之余希望开始整理一下对此处源码的阅读心...

2020-04-22 11:35:26 351 2

原创 Linux 虚拟内存、Java直接内存和内存映射

文章目录Linux虚拟内存分页和页表内存寻址和分配虚拟内存空间分布malloc和free是如何分配和释放内存?内存分配的原理malloc(brk,sbrk)和mmap分配内存方式的比较Java 中的直接内存三个场景场景一:将一个文件通过网络发送出去传统方式java mmapjava的sendfile场景二:将应用程序中的内存中的数据通过网络发送出去(非磁盘上的)场景三:从网络读数据到Java应用程...

2020-04-02 16:21:40 2161 10

原创 DNS详解以及Bind使用(二)---Bind安装、配置及使用

文章目录Bind概念安装安装明细配置主配置文件格式dig命令Bind概念Bind (berkeley internet name domain ) 由ISC 进行维护,还维护了dhcpdBind是DNS协议的一种实现,是一个DNS Server程序,其守护进程名 为 named安装sudo yum install -y bind安装明细主配置文件:/etc/named.con...

2020-01-08 17:55:45 2267

原创 网络安全及密码学原理初探

一直搞不太清楚HTTPS以及各种加密算法到底是什么意思,特写此博客记录学习心得文章目录Linux 网络安全概述网络通信安全的目标:网络攻击类型:解决方案加密和解密传统加密现代加密加密算法和协议安全服务密码学知识加密算法的工作模式:对称加密:**非对称加密(公钥加密)**:单向加密密钥交换数字证书公钥基础设施PKI:证书的内容如何验证证书OpenSSLSSL会话步骤OpenSSL使用标准命令Lin...

2019-08-27 17:25:39 551

原创 Centos7 安装gitlab-ce 并开启HTTPS

最近想研究基于Kubernetes的CI/CD,没想到在Gitlab-ce安装上花费了挺多功夫,特此记录1 安装安装依赖 yum -y install curl policycoreutils postfix开启postfix 邮件服务 systemctl start postfix && systemctl enable postfix安装omnibus Gitl...

2019-08-11 17:36:54 579

原创 深入理解Docker网络模型

Docker Linux Bridge Veth Pair

2019-03-19 17:18:12 757 1

原创 OCI,CRI,CRI-O,Containerd 名词解释

CRI,Containerd,OCI

2019-01-26 12:11:32 12709 2

原创 Kubeadm 安装 Kubernetes1.12 全流程

Kubeadm Kubernetes1.12 flannel heapster

2018-12-28 11:38:18 1361 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除