FastDFS

简介 由国人开发的, 用C语言实现的,开源的分布式文件系统,对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题, 特别适合以文件为载体的在线服务 设计 FastDFS中只有两个角色:Tracker和Storage。 Tracker作为中心结点,其主要作用是维护Storage信息,负载均衡和调度等。 Tracker会在内存和临时文件中记录Storage分组和Storage的状态等信息,不记录文件索引信息,占用的内存量很少。 而重要的文件索引信息将附属在Storage生成的文件ID中,这无疑去掉文件索引这一步,也提高了文件检索的性能。 存储 FastDFS采用了分组存储方式来保存文件的多个备份。 存储集群由一个或多个逻辑组构成,集群存储总容量为集群中所有组的存储容量(一个存储组的容量由该组中容量最小的Storage决定)之和。 一个组由一台或多台Storage组成,同组内的多台Storage之间是互备关系,同组内的存储服务器上的文件是完全一致的。 文件上传、下载、删除等操作可以在组内任意一台Storage上进行。 架构 ...

2017年4月9日 · 2 分钟 · Bug1024

ZooKeeper

Apache Hadoop 的一个子项目,基于Java的分布式应用程序协调服务 使用场景 数据发布与订阅(配置中心) 负载均衡 命名服务 分布式协调 集群管理与Master选举 分布式锁 Server角色 领导者(Leader) : 领导者不接受client的请求,负责进行投票的发起和决议,最终更新状态。 跟随者(Follower): Follower用于接收客户请求并返回客户结果。参与Leader发起的投票。 观察者(observer): Oberserver可以接收客户端连接,将写请求转发给leader节点。但是Observer不参加投票过程,只是同步leader的状态。Observer为系统扩展提供了一种方法。 原理 Master选举:针对Master选举的需求,通常情况下,我们可以选择常见的关系型数据库中的主键特性来实现:希望成为Master的机器都向数据库中插入一条相同主键ID的记录,数据库会帮我们进行主键冲突检查 zkClient 生成环境中经常遭遇session expire异常,zkClient解决watcher一次性注册问题,将znode的事件重新定于为子节点的变化,数据的变化,链接即状态的变化三类。

2017年3月8日 · 1 分钟 · Bug1024

Qconf

360开源的一款分布式配置管理工具 相关链接 原理 GitHub 特点 一处修改,所有机器实时同步更新 高效读取配置 安装部署方便,使用简单 服务器宕机、网络中断、集群迁移等异常情况对用户透明 支持c/c++、shell、php、python、lua、java、go、node 等语言 服务端 QConf使用ZooKeeper集群作为服务端提供服务 单条配置直接存储在一个ZNode上 利用ZooKeeper的Watch监听功能实现配置变化时对客户端的及时通知 客户端 获取:查共享内存,无记录则向消息队列中加入请求,agent感知消息队列,agent查ZK并更新共享缓存 更新:ZK通知agent变更,agent从ZK中获取新值同时更新共享内存 设计目标:降低与ZooKeeper的链接数,本地缓存,及时更新,容错 特点:无锁,单点写,父子进程keepalive,落盘数据维护 管理端 业务修改配置的管理界面

2017年1月2日 · 1 分钟 · Bug1024