分布式
文章平均质量分 82
冷面寒枪biu
怕什么真理无穷, 进一寸有一寸的欢喜
展开
-
Redis 原理及应用(4)--Redis应用场景分析
来到了Redis系列的最后一篇,在前三篇中,介绍了Redis的数据类型及底层实现,持久化,集群分区,事务,缓存淘汰策略,HA哨兵机制等内容,其实关于Redis最重要的是其应用场景,只有知道Redis在什么场景下使用才是第一步。在这篇文章中,我们就来讨论一下Redis典型的应用场景。缓存提到redis,我们第一想到的应用场景肯定是缓存,因为redis是基于内存的数据库,具有很强大的读写性能。原创 2018-01-30 18:38:01 · 3166 阅读 · 0 评论 -
Zookeeper系列(4)--ZK概述,数据模型,节点特性,Watcher机制、ACL及数据存储
在zookeeper系列的前三篇,介绍分布式数据一致性的相关原理及经典的分布式一致性算法,比如:2PC,3PC,Paxos算法。在本篇,我们正式开始介绍Zookeeper,Zookeeper是分布式一致性问题的工业解决方案,是常用的分布式协调框架。本篇,会介绍Zookeeper的基本概念,数据模型,节点特性,Watcher机制及ACL等机制,在后边我们会介绍Zookeeper为了保证一致性使用的算...原创 2018-02-02 15:58:35 · 5097 阅读 · 1 评论 -
Zookeeper系列(5)--ZAB协议,消息广播,崩溃恢复,数据同步
在前一篇中,写了Zookeeper的相关概念,以及节点、acl,watcher等机制,这一篇就写一下保证ZK集群高可用及数据一致性的底层实现算法:ZAB协议。ZAB协议概述在前面的文章中,介绍了经典的分布式数据一致性算法Paxos算法,但事实上zookeeper并没有采用完全的Paxos算法,而是采用了一种称为Zookeeper Atomic Broadcast(ZAB,zookeeper原子消息...原创 2018-02-02 18:12:08 · 9743 阅读 · 7 评论 -
Zookeeper系列(6)-- Zookeeper的典型应用场景
在寒假前,完成了Zookeeper系列的前5篇文章,主要是分布式的相关理论,包括CAP,BASE理论,分布式数据一致性算法:2PC,3PC,Paxos算法,Zookeeper的相关基本特性,ZAB协议。今天,完成Zookeeper系列的最后一篇也是最为重要的内容:Zookeeper的典型应用场景的介绍,我们只有知道zk怎么用,用在哪,我们才能真正掌握Zookeeper这个优秀的分布式协调框...原创 2018-02-25 22:20:58 · 5059 阅读 · 5 评论 -
Redis 原理及应用(2)--持久化方式、集群管理、事务及与Memcached的对比
在上一篇文章中,主要学习了一下Redis的5种数据结构的底层实现原理,在这一篇中,将介绍Redis的持久化方式,与Memcached的区别,Redis3.0的集群部署以及广泛的应用场景。Redis持久化方式redis默认创建16个数据库,通过select语句可以切换数据库。我们知道,Redis是一个内存数据库,在内存中以K-V形式来存储数据,但是它可以配置持久化选项来进行持久化,这也是Re原创 2018-01-29 21:56:19 · 1064 阅读 · 0 评论 -
Redis 原理及应用(1)--数据类型及底层实现方式
Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用。Redis由于其丰富的数据结构也可以被应用到其他场景。Redis是一个K-V的非关系型数据库(NoSQL),常见的NoSQL数据库有:K-V数据库如Redis、Memcached,列式数据库如大数据组件HBase,文档数据库如mogoDB。Redis应用广泛,尤其是被作为缓原创 2018-01-29 19:50:41 · 13300 阅读 · 4 评论 -
IO复用模式--select、poll、epoll详解
IO模式,从大类上可以分为同步IO和异步IO,同步和异步的区别主要是针对IO事件的执行者,拿读数据来说,异步IO是内核等待内核缓存区数据就绪,然后由内核负责将数据拷贝到用户空间缓冲区,再发送实现完成信号,而同步IO是发送内核缓冲区数据就绪信号,将数据copy到用户缓冲区还是由应用程序进行io系统调用实现。同步IO又包括阻塞IO、非阻塞IO、IO多路复用和信号IO模式。其中,IO复用是现在实现高性能原创 2018-01-29 11:33:49 · 1231 阅读 · 0 评论 -
Zookeeper系列(3)--Paxos算法的原理及过程透彻理解
从上一篇我们了解了2PC和3PC之后,我们可以发现,无论是二阶段提交还是三阶段提交都无法彻底解决分布式的一致性问题以及无法解决太过保守及容错性不好。Google Chubby的作者Mike Burrows说过,世上只有一种一致性算法,那就是Paxos,所有其他一致性算法都是Paxos算法的不完整版。Paxos算法是公认的晦涩,很难可能能将清楚,但是工程上也很难实现,所以有很多Paxos算...原创 2018-02-01 16:23:46 · 25659 阅读 · 7 评论 -
一致性哈希算法
一直性Hash算法在很多场景下都有应用,尤其是在分布式缓存系统中,经常用其来进行缓存的访问的负载均衡,比如:redis等非关系数据库作为缓存系统。我们首先来看一下采用取模方式进行缓存的问题。一致性Hash算法的使用场景 假设我们的将10台redis部署为我们的缓存系统,存储数据,存储方式是:hash(k)%10,用来将数据分散到各个redis存储系统中。这样做,最大的问题就在于:如果此原创 2018-01-25 21:46:39 · 4810 阅读 · 1 评论 -
Zookeeper系列(2)--2PC、3PC及其应用
在上一篇中,我们介绍了为什么使用分布式,为什么会出现分布式数据一致性问题,以及相关分布式理论:CAP/BASE理论,这些是我们进行后边介绍的分布式一致性算法的基础,正是由于在系统的可用性和数据一致性之间反复的权衡,于是出现了一系列的一致性协议,如2PC,3PC,paxos算法等。本篇就介绍两个最常见的分布式一致性算法:两阶段提交(2PC),三阶段提交(3PC)以及它们的相关应用。其实我觉得这些原创 2018-01-31 17:04:40 · 11550 阅读 · 5 评论 -
Zookeeper系列(1)--分布式一致性理论,CAP,BASE理论
Zookeeper系列,会从分布式一致性理论开始介绍,设计诸如:CAP,BASE理论,分布式一致性算法:2PC,3PC,Paxos,ZAB以及Zookeeper的节点特性,Zookeeper如何保证一致性及高可用,最后会介绍zk的各种应用。关于数据的一致性,我们在数据库中有了解过,因为数据库事务的ACID特性的C就代表一致性,这ACIC可以简单的把一致性理解为正确性或者完整性,那么数据一致性通原创 2018-01-30 22:20:26 · 9826 阅读 · 5 评论 -
Redis 原理及应用(3)--内存淘汰机制、主从同步原理,HA策略(哨兵机制)分析
在前两篇,我们学习了一下Redis的相关数据类型、底层实现、持久化、集群分区等知识,这一篇我们重点搞懂一下Redis的内存淘汰机制,用于容错的哨兵机制以及非常重要的应用场景。Redis内存淘汰机制 Redis是内存数据库,我们能时时刻刻能感受到Redis作者为更好地使用内存而费尽各种心思,例如最明显的是对于同一种数据结构在不同应用场景下提供了基于不同底层编码的实现(如压缩列表、跳跃表等原创 2018-01-30 15:40:32 · 2343 阅读 · 0 评论