![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统架构
文章平均质量分 80
KDF5000
热爱互联网热爱IT
展开
-
为应用程序添加缓存
服务端添加缓存1. 背景由于项目进度赶得比较紧,而且第一次自己设计系统的架构,刚开始考虑的并不完全,主要想着先把系统的功能实现了再说。因此刚开始设计系统的时候并没有考虑缓存的问题,但是对已一个web系统,缓存不仅可以大大的减少数据库的压力,也可以很大程度的提高系统的响应时间。现在系统的功能完成的基本差不多了,因此现在需要为系统添加缓存,但是由于系统功能已经完成的差不多了,代码写的也很多了,所以现在添原创 2015-06-04 14:28:51 · 3552 阅读 · 0 评论 -
基于docker的hadoop分布式集群
Hydra-hadoop项目地址:https://github.com/KDF5000/hydra-hadoop 使用docker在单机部署hadoop和hbase的分布式环境,本项目具有一下特征: * 使用serf和dnsmasq 作为集群节点管理和dns解析 * 可以自定义集群hadoop和hbase的配置,配置完后只需重新build镜像即可 * ssh远程登录集群节点容器项目目录ser原创 2016-05-16 16:41:45 · 1336 阅读 · 0 评论 -
一致性哈希算法
前面专门介绍过几种常见的数据分片(Sharding),主要包括范围分片(Range)和哈希(Hash)分片两种大的策略,其中哈希分片最简单的Round Robin方法(直接按照机器数取模)存在一个明显的缺点,当机器数增加或者减少的时候,所有的数据都要进行重新的哈希分配。这个问题的本质原因是因为机器和数据哈希分布之间强耦合,因此针对这个缺陷主要有两个解决方案一种是引入虚拟桶的概念,分两步映射(key-原创 2017-05-03 12:41:11 · 1571 阅读 · 1 评论 -
对象存储对比 - Haystack
经过一段时间的调研,对分布式对象系统有了一点浅显的认识,暂不谈和文件系统的区别(其实还是有点傻傻分不清),姑且认为对象存储和文件系统最大的区别就是API,文件系统提供了完整POSIX语义,往往具有层次化的目录结构,对文件可以进行精细的操作(open, read, write, seek, delete等),相对会复杂一些。相比之下,对象存储就简单的多,对象本义是**B**inary **L**arg原创 2017-06-25 21:58:03 · 5681 阅读 · 0 评论 -
再读分布式一致性算法Raft论文
Raft是一个管理日志副本一致性的算法。相比Paxos结果一样,并且一样高效,但是理解起来更加的容易。Raft将一致性的主要元素分离开来,比如leader选举,log 复制,安全等。同时,也提供了一个新的机制实现cluster membership改变,其使用多数的原则来保证安全性。一致性算法一致性算法的意义就是保证一致性的一组机器能够在其部分成员出现故障的时候依然能够存活下来(提供服务)。在Raf原创 2017-07-16 10:21:11 · 2649 阅读 · 1 评论 -
SeaweedFS索引-CompactMap
SeaweedFS提供了几种不同的needle索引策略,包括memory, btree, blotdb, leveldb四种,其中默认的是memory,也是其内部唯一自己实现的一种索引,btree使用google的btree开源实现,boltdb和leveldb都依赖一个db.memory的索引实现,使用了一个叫CompactMap(这是作者自己起的名)的数据结构。本文后面将会重点介绍compact原创 2017-06-22 09:13:43 · 1679 阅读 · 2 评论