从分布式到zookeeper(1)

来源:互联网 发布:java 泛型和通配符 编辑:程序博客网 时间:2024/05/18 01:03

公司有位前辈跟我说过“把你学到的东西讲给别人听,才知道自己有没有学会”,这话我一直记着,但苦于不知道讲给谁听,直到今天突然想到我可以写博客啊。。。于是,下面就成为我的第一篇博文了。。。


前两天参加一个面试,考官问了我一些产品框架和底层的问题,顿时觉得很尴尬。。。平时大多做的就是在现有的框架上垒点业务代码,却很少往底层上思考。痛定思痛,决定从我们系统中最常用的zookeeper入手,好好学习一下系统框架。


从分布式系统谈起,引入zookeeper。


1、分布式系统的有几个特点需要关注下,因为后文提到内容是针对这些特点提出的相应解决方法的:

1)并发性。多节点会并发地操作一些共享资源,如数据库、文件系统等。

2)分布式系统缺乏一个全局时钟序列控制。

3)网络通信异常。分布式系统中各节点通过传递消息的方式来进行通信,这依赖于网络,也就会出现延时、宕机等问题。


2、我们知道事务本身是有一些特性的,这些特性如何在分布式系统中得以实现呢?先了解下事务的特性。

数据库事务正确执行的四个基本要素ACID。

      A:原子性。一次事务的提交要么全部成功,要么全部不执行。

      C:一致性。数据库只包含成功事务提交结果。

       I:隔离性。

      D:持久性。


3、分布式系统中的CAP原则。

一个分布式系统中,其一致性、可用性以及分区容错性不可兼得。

C:一致性。数据及其副本能否在同一时刻拥有相同的值。

A:可用性。服务一直处于可用状态,客户端的每个请求都能得到响应。

P:分区容错性。系统因为一些故障使得部分节点之间不能连通了,就形成了分区,把数据复制在多个节点上,当分区形成的时候,数据有可能分布在不同的分区里面,这样容错性会提高。


4、BASE思想:基本可用,软状态(状态可以有一段时间不同步),最终一致(数据只要最后保持一致,不要求实时一致)。


5、为了实现



在学习中参考的资料如下:

http://www.cnblogs.com/leesf456/p/5992377.html


阅读全文
0 0