zookeeper
zhanglehes
这个作者很懒,什么都没留下…
展开
-
Zookeeper对于事务性的支持
Zookeeper滴功能还是蛮强大的。它对于事务性的支持主要依赖于四个函数,zoo_create_op_init,zoo_delete_op_init, zoo_set_op_init以及zoo_check_op_init。每一个函数都会在客户端初始化一个operation,客户端程序有义务保留这些operations。当准备好一个事务中的所有操作后,可以使用zoo_multi来提原创 2015-02-09 18:56:04 · 3759 阅读 · 0 评论 -
一种分布式框架设计(一)
通常,当服务涉及到的数据量大到一定程度以后,我们会考虑拆分数据。在这种分布式架构中,每个结点只拥有总数据量的其中一部分,而最终的输出结果会汇总所有结点的结果。这种Map-reduce思想的架构,是尽量不去查分程序,而只是拆分数据来支持大数据的处理,如下图所示。这种框架对每个worker结点的可靠性要求比较高,如果某一个worker结点挂掉了,那么最后的输出结果将是不全的。我设计的这个分原创 2015-02-15 17:24:59 · 953 阅读 · 0 评论 -
Zookeeper的回调函数
zoo_acreate是一个异步创建结点的函数,其形参中有一个指向函数的指针(func1),和传递给该函数的data。我们可以理解为只要客户端程序已经准备好的创建该结点的所有工作,并把这条request发送出去,那么zoo_acreate就可以直接返回了,并且返回值是ZOK(但此时并不能说明结点创建成功了)。一旦服务端收到到这条request,处理后会把结果返回给客户端。我们再来看func1的形参原创 2015-02-13 16:25:25 · 1524 阅读 · 0 评论 -
一种分布式框架设计(四)
我们设计的分布式系统,在正常工作时呈现出网状。服务有层次性,客户的请求会逐步经历各层服务进行处理,当遍历完所有服务后才会完成一次请求。每层服务会有若干台机器,上游节点的机器可以把输出结果传递到下游节点的任意一台机器上。 当服务所依赖的数据需要更新时,我们需要做好同步工作,并保证在数据更新过程中服务是可用的。这儿介绍两类更新的操作方式,它们都需要用到zookeeper来实现。 第一类原创 2015-03-16 17:51:42 · 681 阅读 · 0 评论