豫ICP备17040950号-2

Docker 核心技术与实现原理

提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。

同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的整体架构变得更加困难。

使用信号量Semaphore实现数据库连接池

我们先来看一下Semaphore 的定义;
Semaphore:一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。

高并发后端设计-限流篇

系统在设计之初就会有一个预估容量,长时间超过系统能承受的TPS/QPS阈值,系统可能会被压垮,最终导致整个服务不够用。为了避免这种情况,我们就需要对接口请求进行限流。

限流的目的是通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待。

常见的限流模式有控制并发和控制速率,一个是限制并发的数量,一个是限制并发访问的速率,另外还可以限制单位时间窗口内的请求数量。

TCP连接的状态详解以及故障排查

前天面试技术大牛面试了TCP连接状态,回答的一塌糊涂。工作10年也有几年在做网络通讯,使用NETTY,MINA框架,多数偏应用开发。对网络底层也有部分了解,但沉淀的深度还是不够,理论基础还是在大神面前大打折扣。找了几篇文章恶补这块知识。
以下文章为转载,我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。

1、TCP状态

了解TCP之前,先了解几个命令:

linux查看tcp的状态命令:
1)、netstat -nat 查看TCP各个状态的数量
2)、lsof -i:port 可以检测到打开套接字的状况
3)、sar -n SOCK 查看tcp创建的连接数
4)、tcpdump -iany tcp port 9000 对tcp端口为9000的进行抓包