求阙厅

春有百花秋有月,夏有凉风冬有雪。若无闲事挂心头,便是人间好时节。

Netty 系列 阻塞/非阻塞/同步/异步

同步与异步 同步和异步关注的是消息通信机制: 同步是指在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。 异步是指在调用发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处...

Go 系列 容器

container 包实现了三个复杂的数据结构:堆,链表,环

MQ 系列 综述

消息中间件基本特性

好的架构不是设计出来的,而是演进出来的。 MQ 准确的名字是消息引擎系统。根据维基百科的定义,消息引擎系统是一组规范。企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递。 消息引擎系统的作用是“削峰填谷”,所谓的“削峰填谷”就是指缓冲上下游瞬时突发流量,使其更平滑。特别是对于那种发送能力很强的上游系统,如果没有消息引擎的保护,“脆弱”的下游系统可能会直接...

MySQL 系列 基础架构

尽可能全面的覆盖 MySQL 涉及的内容

MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图、函数(内置函数如日期、时间、数学、加密函数)等,还有一个通用的日志模块 binlog 日志模块。 连接器:身份认证和权限相关(登...

Redis 系列 综述

开启 redis 探索新篇章

Redis 将所有数据都放在内存,用一个单线程对外提供服务,单个节点在跑满一个 CPU 核心的情况下可以达到了 10w/s 的超高 QPS。

分布式 系列 数据编码

编码格式 文本格式 JSON 、XML 和 csv 都是文本格式,因此具有不错的可读性,通常作为数据交换格式(即将数据从一个组织发送到另一个组织)。 缺点 数字编码有很多模糊之处;在 XML和 CSV中,无法区分数字还是字符串;JSON可以区分数字,但是不区分整数和浮点数,且不指定精度,另外对大于2^53的大整数也不能精确解析(这也是为什么很多int64编码为JSON时,有...

分布式 系列 并发控制

在数据库领域,并发控制是一个很具有挑战性的领域。常见的并发控制方式包括悲观并发控制、乐观并发控制和多版本并发控制。 悲观并发控制 在关系数据库管理系统中,悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,PCC)是一种并发控制的方法。它可以以影响其他用户的方式来阻止一个事务修改数据。如果一个事务执行的操作对某行数据应用了锁,那么只有在这个事务将...

分布式 系列 Quorum算法

同步写即为强一致性,Quorum写为最终一致性。 问题描述 为了保证数据安全性,分布式存储在承诺用户写成功之前,必须保证多份副本持久化。假如需要等待最慢副本完成,在遇到有单机网络时延抖动、磁盘IO毛刺的场景下,可能会导致客户端时延上涨,用户写毛刺明显。Quorum 旨在优化存储写时延, 降低最慢副本长尾(毛刺)对写的影响。 名词解释 Quorum:同时写多个副本,多数副本返回...

SSDB

分析 高可用的分布式 KV 存储


Pika

分析 高可用的分布式 KV 存储