Dst全称是:A distributed key-value in-memory store system with table concept.
翻译过来的中文名是:一个带有表概念的分布式内存K-V存储系统。
Dst项目地址:https://github.com/dst-project/dst
Dst是dst-project社区的开源项目,欢迎对分布式感兴趣的同学SatrForkContribution.
本文简要介绍一下Dst项目的架构设计思路。首先给出项目的架构图。
Dst项目的架构设计分析
各组件说明:

  1. Meta Server:Meta Server是一组由raft协议管理的集群(任意台机器,但一般情况下,3台+能保证一定的高可用),该集群用于查找给定key所在的shard(一般翻译成分片),以及维持store server的meta信息。此外,Meta Server需要负责Store Server分片的探活工作。具体流程是Store Server的Master需要发送心跳给Meta Server,以此Meta Server会更新心跳表。
  2. Proxy Server:Proxy Server是一组无状态的代理服务器,可以任意时刻添加或者删除Proxy Server。它是Client直接请求的地址。Client的请求先到Proxy Server, Proxy Server再去Meta Server查询给定的key所在的shard。同时Proxy Server也可以cache一部分key所在的location。
    此处Proxy Server主要完成的功能主要是代理Client的请求。
    包括请求key所在的分片;请求key对应分片的实际数据;处理响应数据等。
  3. Store Server:一组Store Server的分片由一主多备的Store Server组成(图中只给出了一主一备)。每个分片至少1个备份。主服务器需保证至少1个备份服务器写入日志成功才能应用该条日志且返回。

相关文章: