异想天开

What's the true meaning of light, Could you tell me why

本周学习笔记

日期:2014-08-09 20:16:08
  
最后更新日期:2015-03-22 18:45:37
【技术文章,非码农勿入】
列举一些涉及分布式的关键字,具体详解等后面自己各方面有了较多经验后。
1.一致性hash算法 一致性hash解决了缓冲系统在节点失效(服务器宕机)和集群加入新节点后,还满足单调性。
动态变化的Cache环境中,哈希算法应该满足的4个适应条件:
平衡性(Balance)-最好的情况是使缓冲的数据均匀分布到不同节点 单调性(Monotonicity)-加入新节点后,原有节点不失效,新加入的节点又能被映射,删除节点后,该节点的数据能被其他节点又继续缓冲。举个例子:一般常用的hash函数直接取余即key=data%n,这样当n变化时,那么某data前后的key也改变了。一致性hash算法,key的定义域是一个环(A->B->C->D->A),映射的思路,大概类似这样:假设有5台机器,我们可以用ip表示机器的唯一标识符,通过一个哈希函数计算key=hash(ip),这里机器的哈希方式和数据的哈希方式是一致的,将机器也视为数据,得到5个key,如下图:
P40802-130636 其中key1~key7是几个需要缓冲的数据,每个数据可以缓冲在顺时针方向找到第一个特殊的数据即为一台机器即可。新增一台机器也还是按这种方式缓冲,新机器的key到逆时针的第一台机器之间的数据会重新缓冲一次,缓冲到新机器,保证了新加入的机器能够缓冲数据。同时若一台服务器失效了,那么也只影响部分数据,这部分数据继续按顺时针第一台机器缓冲,保证了这部分数据能被继续缓冲。
分散性(Spread) 负载(Load) 这两点没看明白
百度百科:http://baike.baidu.com/view/1588037.htm?fr=aladdin
看上去对于解决cache持久化的数据很有帮助

2.分布式系统设计 http://www.cnblogs.com/ccdev/p/3341234.html

3.Paxos选举 这个类似一个分布式锁,该策略主要选出一个leader,用leader来管理group的其他成员。

4.CAP猜想 CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)可用性(Availability)分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的。之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实是不可以兼得的。
文章:http://www.cnblogs.com/mmjx/archive/2011/12/19/2290540.html

5.强一致性 :一次写操作,当全部从机同步写成功,才算写成功

6.弱一致性 : 不用等全部从机全部写成功才返回,只需要一个主机写成功即可,从机慢慢同步过去即可,保证最终会达到同一个结果。比如微博数据,有主从机制,只有主机能够写,从机提供读,主机更新后的数据同步到从机。


7.心跳机制 http://blog.chinaunix.net/uid-8332744-id-4023796.html

8.搜索关键字 分布式缓冲系统设计 site:blog.chinaunix.net
memcached 与 redis 内存数据库

9.http 缓冲 Squid Cache(简称为Squid)是HTTP代理服务器软件


10.Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算


11. mysql内存数据库,关系型 redis内存数据库,nosql


12.REST。含状态传输(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。满足该风格的接口即为http restful架构。举个例子,比如博客的新增文章或删除文章,那么接口若设计成这样,就比较符合restful风格,比如GET /add?title=xxx&time=xxx HTTP/1.1或GET /delete?id=xxxx即可