个人简介

Echo Blog


江湖无名 安心练剑
  • multi-tenancy 多租户
    什么是多租户 多租户指一套系统能够支撑多个租户。 一个租户通常是具有相似访问模式和权限的一组用户,典型的租户是同一个组织或者公司的若干用户。 要实现多租户,首先需要考虑的是数据层面的多租户。 数据层的多租户模型对上层服务和应用的多租户实现有突出影响。 本文重点介绍数据层多租户对各种多租户模型的支持。 本质 多租户本质就是通过动态配置,支持实现同套代码,一次部署,服务多个产品。 ...
    2018-10-30 01:31:33 | Distributed
  • 分布式原理:Gossip 协议
    Gossip gossip 协议(gossip protocol)又称 epidemic 协议(epidemic protocol),是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用 gossip 协议来确保网络中所有节点的数据一样。 从 gossip 单词就可以看到,其中文意思是八卦、流言等意思,我们可以想象下绯闻的传播(或者流行病的传播...
    2018-10-30 01:31:33 | Distributed
  • 分布式共识(Consensus):Viewstamped Replication
    Viewstamped Replication Viewstamp Replication(以下简称VR)最初被提出是作为数据库中的一部分工作,2012年作为单独的分布式共识算法再次发表。 系统模型 VR算法适用于允许故障-停止的异步系统中,并且VR不要求可靠的消息传递,即VR可以容忍消息丢失、延迟、乱序以及重复。 容错 在一个总共有2f+1个进程的VR服务中,VR可以容忍最多不超...
    2018-10-30 01:31:33 | Distributed
  • 分布式共识(Consensus):PBFT 算法 拜占庭容错算法
    PBFT简介 BFT(Byzantine Fault Tolerance)是区块链共识算法中需要解决的一个核心问题。 例如,公有链网络中,比特币和以太访中用的是POW,EOS用的是DPOS。 PBFT一般用于联盟链场景中,它是共识节点较少的情况下BFT的一种解决方案。 PBFT(Practical Byzantine Fault Tolerance)即:实用拜占庭容错算法。 该算法...
    2018-10-30 01:31:33 | Distributed
  • 分布式共识机制 Consensus
    分布式共识(Consensus) 分布式共识问题,简单说,就是在一个或多个进程提议了一个值应当是什么后,使系统中所有进程对这个值达成一致意见。 这样的协定问题在分布式系统中很常用,比如说选主(Leader election)问题中所有进程对Leader达成一致; 互斥(Mutual exclusion)问题中对于哪个进程进入临界区达成一致; 原子组播(Atomic broadcast...
    2018-10-30 01:31:33 | Distributed
  • Byzantine failures 拜占庭将军问题
    拜占庭将军问题 拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信中的基本问题。 含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的 起源 拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占...
    2018-10-30 01:31:33 | Distributed
  • 分布式系统脑裂 split brain
    “脑裂”定义 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。 在一个高可用(HA)系统中,当联系着的节点断开联系时,本来为一个整体的系统,分裂成两个独立节点,两个节点开始争抢共享资源造成系统混乱、数据损坏的现象,成为“脑裂”。 对于无状态服务...
    2018-10-30 01:31:33 | Distributed
  • Paxos-一致性算法
    Paxos 算法 Paxos 算法是莱斯利·兰伯特于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。 问题 分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。 基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础 Paxos ...
    2018-10-30 01:00:26 | Distributed