Linux大量异常ESTABLISHED TCP连接问题排查

最近在工作中遇到一个关于TCP/IP中连接异常的问题,加深了对与TCP/IP整套机制的理解。在此,进行分享希望对遇到同样问题的朋友有所帮助。

Zookeeper Client架构分析——ZK链接重连失败排查

本篇将通过工作遇到的“Zookeeper无法重连”问题,深入Zookeeper Client和Curator进行架构分析,解析出现改问题的原因。网上很多文章介绍了Zookeeper Client特别是Curator的用法,但是鲜有资料分享两者的内部实现和工作原理。既然,本篇文章是为了解决针对性问题,故而文章分为三段进行阐述:What、Why、How。

基于Raft的分片(shards)分布式K/V存储——2

上一篇文章已经介绍了数据分片(shards)存储基本情况,本文基于上文的shared master,实现分片存储k/v的replica groups。上篇文章主要介绍在数据分片中配置变动如何保证一致性,这篇的重点是数据本身存储的一致性以及不同分组之间的数据迁移。这部分的实现代码见:代码实现

基于Raft的分片(shards)分布式K/V存储系统

数据分片(shards)存储是一种普遍需求,我将分成两篇文章介绍基于Raft的分片K/V存储系统基本原理以及实现。代码实现基于Golang,关于Raft分布式一致性算法本身的实现已经在前面的问题阐述了,在此不再赘述。

现代C++特性介绍

最近借鉴、整理相关资料分享了C++11以来新特性。针对现代C++特性的原理,以及“冰山以下”的部分进行了解析。分享的内容

Raft一致性算法原理与实现————日志压缩快照技术

上篇文章谈到了使用Raft一致性协议实现分布式K/V存储。承接上文,本篇谈一谈Raft中的日志压缩与快照(snapshot)实现。

Raft一致性算法原理与实现——分布式K/V存储

前面的文章说明了raft的基本原理,以及如何用Golang实现raft分布式一致性协议。本篇我们将通过一个K/V的例子,向大家展示如何基于raft协议实现分布式存储。这种需要在工业上应用非常广泛,通过这个基本的分布式存储例子,希望大家对一致性算法在实际应用方面有更加深刻的认识。

Raft一致性算法原理与实现——事件循环

本文继续介绍Raft实现,上一片文章谈到了整体架构以及与任务相关的阻塞队列。针对上篇文章遗留的问题,本文着重介绍事件循环如何正确消费阻塞队列中的任务,以及Raft算法中节点处在三种不同角色时如何处理事件循环。

Raft一致性算法原理与实现——主循环和阻塞队列

上一片文章简单的说明了Raft的基本原理,当然推荐大家去读一读paper更加深入的理解一致性算法的设计。本篇博客开始,将简单介绍如何使用Golang实现Raft算法,并在其基础上实现基本的分布式k/v存储。本篇将从整体性介绍程序的结构,以及基本的事件循环等内容,希望大家对整体代码框架有一个宏观的认识。

Raft一致性算法原理与实现——概述

一致性问题一直是分布式系统的核心问题,Raft针对该问题设计了基于日志的可容错的一致性算法。本文将简单说明Raft一致性算法的原理。参考论文