哈希冲突解决(转载)

1. 哈希表(Hash table) 也称为 哈希表 。是字典的一种抽象。比如说你要查一个字,通过这个字的拼音首字母,找到这个字的页码,然后翻到那页找就行了。这种方法直接把查找 时间复杂度 降到了常数。但是要牺牲一定的计算索引的时间。计算索引的那个函数称为 哈希函数 ( 散列函数“)。 1.1. 常见的三种哈希结构: 数组; … 阅读更多 »哈希冲突解决(转载)

缓存穿透/击穿/雪崩及其解决方案

1. 缓存的穿透/击穿/雪崩 缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。 缓存击穿:缓存击穿是指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量… 阅读更多 »缓存穿透/击穿/雪崩及其解决方案

什么是状态机(转载)

1. 定义 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。 先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 cl… 阅读更多 »什么是状态机(转载)

脑裂(转载)

1. 什么是脑裂 在HA集群系统中,假设有同一个整体、动作协调的节点A 和节点B,节点A和B之间通过heartBeat来检查对方的存活状态,负责协调保证整个集群服务的可用性。正常情况下,如果节点A通过心跳检测不到B的存在的时候,就会接管B的资源,同理节点B检查不到B的存活状态的时候也会接管A的资源。如果出现网络故障,就会导致A和… 阅读更多 »脑裂(转载)

Golang并发调度GMP原理(转载)

Golang并发原理及GPM调度策略 1. Goroutine(Golang Coroutine) 使用多核CPU实现并行处理,使应用在多核cpu实现并行处理的方案主要是多进程与多线程两种方式,多进程模型相对简单,但是有着资源开销大及进程间通信成本高的问题。多线程模型相对复杂,会有死锁,线程安全,模型复杂等问题,但却因为资源开销… 阅读更多 »Golang并发调度GMP原理(转载)

AF_INET域与AF_UNIX域socket通信原理对比(转载)

1. AF_INET域socket通信过程 典型的TCP/IP四层模型的通信过程: 发送方、接收方依赖IP:Port来标识,即将本地的socket绑定到对应的IP端口上,发送数据时,指定对方的IP端口,经过Internet,可以根据此IP端口最终找到接收方;接收数据时,可以从数据包中获取到发送方的IP端口。 发送方通过系统调用s… 阅读更多 »AF_INET域与AF_UNIX域socket通信原理对比(转载)